【发布时间】:2011-11-09 17:49:52
【问题描述】:
在 Code Igniter 中似乎不可能将变量传递给模型的构造函数。也许我在 MVC 或 Code Igniter 中遗漏了一些东西,但我不明白是什么。
就我而言,我应该使用库而不是 Model 吗? (库实际上接受参数)
其实我的代码是这样的,我觉得有点奇怪:
控制器:
class User extends CI_Controller {
public function user($user_id) {
$this->load->model('user');
$this->user->setId($user_id);
$data['username'] = $this->user->getName();
// Isn't it a bit strange ? I can load the class User even if the User doesn't mean anything ?
}
}
型号:
class User extends CI_Model {
private $id;
private $name;
public function setId($id) {
$this->id = $id;
// Retrieve data from DB...
$this->name = $retrieved_data['name'];
}
public function getName() {
return $this->name;
}
}
【问题讨论】:
-
当您将模型类重命名为 user_model 时会发生什么?
-
完全一样。事实上,问题在于 Code Igniter 中的 Model 不接受构造函数的变量 (codeigniter.com/user_guide/general/models.html)。我不知道这是否正常,或者我只是在 CodeIgniter Logic 中遗漏了一些东西(或者可能是 MVC Logic?Model 不应该在其构造函数中接受任何变量吗?)
-
它应该接受变量......嗯,你得到什么错误?我会为你重写这个。
-
在 PHP 中不能有两个相同的类名,即使您使用的是 CodeIgniter。我很惊讶你甚至可以加载模型。在这段代码中,您实际上也不是“将变量传递给模型的构造函数”。
-
@Madmartigan 你是对的,对不起。我简化了stackoverflow的代码,但在我的“真实”代码中,它是用户s和用户,这就是它工作的原因:)
标签: php oop codeigniter codeigniter-2