Обновите запись, добавив данные в один столбец с помощью Eloquent - PullRequest
1 голос
/ 30 марта 2020

Я новичок в Laravel 6 и хотел бы добавить данные в столбец. У меня есть таблица под названием «проекты». Эта таблица имеет столбец с именем «комментарии». Моя цель - добавить данные в столбец «Комментарии» только путем обновления проекта. У меня есть ProjectController, содержащий метод storeComment, который выглядит следующим образом:

publi c функция storeComment (запрос $ запрос, проект $ проект) {

    $validData = $request->validate([
        'project_id'    => 'required',
        'comments'      => 'required'
    ]);


    $project->comments = $validData['comments'];

    $project->save();

    return redirect('home')->with('status', 'Comment created successfully');
}

Проблема заключается в том, что метод создает новую запись вместо обновления существующей. Есть ли кто-нибудь, кто мог бы помочь? Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 30 марта 2020

Сначала необходимо получить запись, а затем обновить комментарии к этой записи следующим образом:

use App\Project;    

public function storeComment(Request $request) {
   $request->validate([
        'project_id'    => 'required',
        'comments'      => 'required'
    ]);

   $project = Project::find($request->project_id);
   $project->comments = $request->comments;
   $project->save();

   return redirect('home')->with('status', 'Comment created successfully');
}
2 голосов
/ 30 марта 2020

public function updateComments(Request $request, $id)
{
  $projects = Project::find($id);
  $projects->comments = $request->comments;
  $projects->save();
}
...