1

我目前正在开发一个使用 Kohana 3.2 的项目。我没有使用过这个框架,所以我是一个“初学者”,虽然我已经使用 Symfony2 很长一段时间了。

假设我有一个“任务”。这个“任务”可以同时分配给多个“用户”。这是通过输入具有不同 user_id 的相同“任务”来实现的。所以我认为通过简单地更改列的数据然后调用来重用模型应该不是问题$task->create()

由于某种原因,这无法正常工作,并且代码返回:
Kohana_Exception [ 0 ]: Cannot create task model because it is already loaded.

我目前的代码是:

Model:
class Model_Task extends ORM{
    protected $_table_name  = 'task';
    protected $_primary_key = 'task_id';
}

Code:
$task = ORM::factory('task');
$task->task = "some random task you need to finish.";
foreach($users as $user){
    $task->user_id=$user;
    $task->create();
}

是我做错了什么还是您根本无法在 Kohana 中重用模型?

4

1 回答 1

1

您为所有用户使用相同的任务对象,因此在第一次迭代后,将在调用 create 方法后加载任务。将您的代码更改为:

foreach($users as $user)
{
    $task = ORM::factory('task');
    $task->user_id = $user;
    $task->create();
}
于 2012-08-02T06:31:48.600 回答