【发布时间】:2014-09-02 08:51:12
【问题描述】:
任何人都可以帮助我如何保存多对多关系吗?我有任务,用户可以有很多任务,任务可以有很多用户(多对多),我想要实现的是在 更新表单 管理员可以将多个用户分配给特定任务。这是通过html多选输入来完成的
name="taskParticipants[]"
这里的问题是通过相同的表单(输入)您可以添加/删除用户,这就是我必须使用sync() 的原因。 也许我应该从头开始,但不知道从哪里开始......
这是我的用户模型:
public function tasks()
{
return $this->belongsToMany('Task','user_tasks');
}
任务模型
public function taskParticipants()
{
return $this->belongsToMany('User','user_tasks');
}
任务控制器
public function update($task_id)
{
if (Input::has('taskParticipants'))
{
foreach(Input::get('taskParticipants') as $worker)
{
$task2 = $task->taskParticipants->toArray();
$task2 = array_add($task2,$task_id,$worker);
$task->taskParticipants()->sync(array($task2));
}
}
}
这是表格结构 任务 id|title|截止日期
user_tasks
id|task_id|user_id
【问题讨论】:
-
我已经更新了我的代码。 link
-
$workers = Input::get('taskParticipants'); $task->taskParticipants()->sync($workers);这就是您所需要的,只要您从该表单传递所有分配给任务的用户。 -
@JarekTkaczyk 谢谢,这太神奇了。
标签: laravel laravel-4 eloquent relationship