The way I create CodeIgniter models at the moment is (ie no constructor, having to pass userID all the time and limited to one object):
$this->load->model('User');
$this->user->set_password($userID, $password);
But I would like to do it like this:
$this->load->model('User');
$User = new User($userID);
$User->set_password($password);
UPDATE: Perhaps just a user model was a poor example.
For instance, if I have a shopping list that has various items I would like to use PHP in this way:
$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 feels fundamentally broken in handling PHP OO in this way. Does anyone have any solutions that can still use the superobject within every model?
You can do it like you normally would:
require_once(APPPATH.'models/User.php');
$User = new User($userID);
Or, you can rely on a table-level model to return a record-level model:
$this->load->model('users_model'); // users (plural) is the table-level model
$User = $this->users_model->get_user($userID);
Meanwhile, in users_model
require_once(APPPATH.'models/User.php');
public function get_user($userID)
{
// get a record from the db
// map record to model
// return model
}
你可以subclass
模型或只是在constructor
添加一些东西我认为你需要调整代码来按照你想要的方式来做...
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.