2011-12-13 14 views
10

an (yani hiçbir yapıcı, KullanıcıNo her zaman ve bir nesneye sınırlı geçmek zorunda) 'dir azından ben CodeIgniter'ın modeller oluşturmak yolu:CodeIgniter'de uygun nesne yönelimli modelleri kurucularla nasıl kullanabilirim?

$this->load->model('User'); 
$this->user->set_password($userID, $password); 

Ama hiç böyle yapmak istiyorum:

$this->load->model('User'); 
$User = new User($userID); 
$User->set_password($password); 

UPDATE: Belki de yalnızca bir kullanıcı modeli kötü bir örnekti. Örneğin

, ben bu şekilde PHP kullanmak istiyorum çeşitli öğeleri olan bir alışveriş listesi varsa:

$this->load->model('List'); 
$this->load->model('Item'); 

$List = new List(); 
$items[] = new Item($itemName1, $itemPrice1); 
$items[] = new Item($itemName2, $itemPrice2); 

$List->add_items($items); 

CodeIgniter temelde bu şekilde PHP OO ele kırık hissediyor. Herkesin her modeldeki süper-sürati kullanabileceği herhangi bir çözümü var mı?

+2

Sadece yeni operatörü kullanmayı tercih ediyor musunuz? – Harsh

+0

Codeigniter, CI adında bir büyük superobject kullanır. Bu çerçeveye yeni nesneler eklemek iyi bir fikir değil bence. Her halükarda ondan miras almaları gerekir. –

+0

Nesneleri diğer nesnelerde saklamak istiyorum –

cevap

13

Sen gibi yapabilirsin normalde:

require_once(APPPATH.'models/User.php'); 
$User = new User($userID); 

Veya, rekor seviye modelini dönmek için bir tablo düzeyi modeli güvenebilirsiniz: users_model yılında arada

$this->load->model('users_model'); // users (plural) is the table-level model 
$User = $this->users_model->get_user($userID); 

,

require_once(APPPATH.'models/User.php'); 

public function get_user($userID) 
{ 
    // get a record from the db 
    // map record to model 
    // return model 
} 
0

modelini subclass ya da sadeceşey ekleyebilir Sanırım aradığınız gibi yapmak için kodu ayarlamanız gerekiyor…

İlgili konular