我使用的Kohana 3.2,而不是它的问题很多,但我写我在哪里包装的任何和所有在一个特定的类返回数据库记录的应用程序。我不知道我理解将数据库行加载到类中的最佳方式,因为它有时是一个ORM模型,有时它可能只是一个行ID。如何正确加载数据库行成一个类在PHP
控制器:
$users = User::find_all();
用户类别
public static function find_all()
{
$users_model = ORM::factory('user')->find_all();
$users = array();
foreach ($users_model as $user_model)
{
$users[] = User::instance($user_model);
}
return $users;
}
这工作不错,但
从,如果我想所有这看起来像用户的列表中选择控制器所以有时我需要一些动作后,加载用户对象只有一个ID一样,再一个例子:
控制器
$user_id = $_POST['user_id'];
$user = User::instance($user_id);
所以是User类负责试图识别如果ID或ORM对象传递到它。看起来这对于良好的面向对象操作来说是不正确的,但我真的不确定要做到这一点的最佳方法是什么。我一直在做的是在构建:
public function __construct($user, $load = 'model')
{
if ($load == 'model')
{
$this->user_model = $user;
}
if ($load == 'id')
{
$this->user_model = ORM::factory('user', $user);
}
}
但是,这真的只是感觉不对。任何建议将不胜感激。
这个包装是什么原因?为什么不使用现有的Model_User类来满足您的需求? – biakaveron 2012-04-28 19:35:01