Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 03.07.2016 12:00:55

Ира

работа с БД

Почему-то не работает изменение записи в БД
если пишу создание новой:

$post = new Post;
$post->title = $title;
$post->body = $body;
$post->save();

то все работает, а если пишу изменение существующей:

$id = 1;
$post = new Post;
$post->id = $id;
$post->title = $title;
$post->body = $body;
$post->save();

то ошибка "статус 500"
В чем может быть дело?

#2 03.07.2016 12:14:49

Re: работа с БД

Ира пишет:

В чем может быть дело?

Потому что в обоих случаях создается новый объект (new Post).

Во втором случае нужно сначала получить объект:

$post = Post::find($id);

Потом уже работать с ним:

$post->title = $title;
$post->body = $body;
$post->save();

Изменено AlexeyMezenin (03.07.2016 12:15:08)

Не в сети

#3 03.07.2016 12:20:04

Ира

Re: работа с БД

Работает, спасибо)

#4 06.07.2016 14:38:05

Re: работа с БД

Ира, вместо создания нового объекта и его сохранения

$post = new Post;
$post->title = $title;
$post->body = $body;
$post->save();

используйте лучше метод "create", он исключает возможность неверного заполнения полей и считатется хорошей практикой

$post = Post::create([
   'title' => $title,
   'body' => $body,
]);

Изменено Diogen (06.07.2016 14:40:04)

Не в сети

Подвал раздела