Отношения модели Laravel Вставка в БД - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь вставить 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 голосов
/ 13 февраля 2019

Вместо этого

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');

}
0 голосов
/ 13 февраля 2019
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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...