Laravel 5.6 - Сохранить значение, только если оно изменилось - PullRequest
0 голосов
/ 03 июля 2018

У меня есть проект Laravel 5.6, и я пытаюсь обновить сообщение из формы, подобной этой

<input name="email" type="text" class="form-control" placeholder="Email" value="{{$user->email}}" required>

В моем PostsController у меня есть это ...

    if($request->input('email')) {
        $user->email = $request->input('email');
    }

Я хотел, чтобы оно обновляло электронную почту только в том случае, если в форму было введено новое письмо, но поскольку я предварительно заполняю поля формы, оно всегда проходит IF.

Есть ли другой способ сделать это в Laravel? Я посмотрел на isDirty (), но не уверен, что это правильная вещь.

1 Ответ

0 голосов
/ 03 июля 2018

Метод save () проверит, изменилось ли что-то в модели. Если нет изменений, он не будет выполнять запрос БД. Так что вам не нужно явно писать код для этого. Тем не менее, если вы хотите использовать метод isDirty, вы можете написать следующее

if($test->isDirty()){
    // changes have been made
}

Или, если вы хотите проверить определенный атрибут:

if($test->isDirty('email')){
   // email has changed
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...