删除与Laravel 5的一对多关系

时间:2015-07-23 14:02:59

标签: php laravel eloquent

我有一对多的关系

在我的任务控制器

public function todo()
{
  return $this->belongsTo('App\Todo');
}

在我的Todo控制器中

public function tasks()
{
  return $this->hasMany('App\Task');
}

使用以下代码添加关系

$todo = new Todo
$todo->save();
$task = new Task
$todo->tasks()->save($task);
$task->save();

但我想删除它以后不是对象只是关系

任何想法

2 个答案:

答案 0 :(得分:1)

假设一个正常的架构,您的todo_id表上会有一个tasks列。取消设置要删除的记录。

$task->todo_id = null;
$task->save();

答案 1 :(得分:1)

this chapter of the docs中:

When removing a belongsTo relationship, you may use the dissociate method. 
This method will reset the foreign key as well as the relation on the child model:

$user->account()->dissociate();
$user->save();

所以在你的情况下,

$task->todo()->dissociate();
$task->save();