Laravel模型关系插入数据库

时间:2019-02-13 12:23:25

标签: laravel eloquent

我正在尝试使用纯粹雄辩的关系将user_id和task_id插入task_comments表中。

这将添加注释,仅添加user_id

public function store(Request $request, Task $task)
{

    Auth::user()->comments()->create( $request->all() );

}

这会添加注释,仅添加task_id

public function store(Request $request, Task $task)
{

    $task->comment()->create( $request->all() );

}

,但我无法同时添加user_id和task_id。我尝试过

public function store(Request $request, Task $task)
{

    Auth::user()->comments()->$task->comment()->create( $request->all() );

}

但这会引发错误...请问任何想法???谢谢。

2 个答案:

答案 0 :(得分:0)

public function store(Request $request, Task $task)
{
    Auth::user()->comments()->$task->comment()->create( $request->all() );
                             // ^ using variable seems wrong.
}

我会用它,

$data = $request->all();
$data['user_id'] = Auth::user()->id

$task->comment()->create($data);

答案 1 :(得分:0)

代替这个

public function store(Request $request, Task $task)
{

Auth::user()->comments()->$task->comment()->create( $request->all() );

}

尝试一下,只有在任务和用户之间有联系时,这才起作用

public function store(Request $request, Task $task)
{

$request->user()->task->comment()->create( $request->all() );

}

这些是我的关系

用户模型

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


public function comments()
{

    return $this->hasMany('App\TaskComment');

}

任务模型

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


public function comment()
{

    return $this->hasMany('App\TaskComment');

}

TaskComment模型

public function task()
{

    return $this->belongsTo('App\Task');

}


public function user()
{

    return $this->belongsTo('App\User');

}