почему update или save () не работает в laravel 5.8? - PullRequest
3 голосов
/ 05 июня 2019

Я пытаюсь обновить таблицу (выбирая из моего собственного приложения реагировать на laravel), и я всегда получаю сообщение об ошибке. Вот как я могу получить:

fetch("http://192.168.2.45/backend/public/api/checkuser", {
      method: "POST",
      body: JSON.stringify(user),
      headers: new Headers({
        "Content-Type": "application/json"
      })
    })

мой API Laravel:

Route::post('update','mainController@update');

 public function update(Request $request)
    {

        $email = $request->email;


        $error_message="DENIED";
        $Success = "Success";


       if (user::where('email', '=',$email)->count() > 0) {
        $user = user::where('email', '=',$email);
        $user->image_name = $request->email;
        $user->save()--->
      here i get my error
      ( i have also tried where(....)->update(....)
      and i get the same error)
          return response()->json(['message' => $Success]);
         }else{
           return response()->json(['message' => $error_message]);
       }
   }

Ответы [ 2 ]

4 голосов
/ 05 июня 2019

Когда вы используете where, результатом будет Query Builder, а не элемент вашей пользовательской модели, для которого вы можете вызывать операции CRUD.Таким образом, вы должны получить результат обратно и вызвать save для него, поэтому замените ваш блок следующим:

if ($user = user::where('email', $email)->first()) {

    $user->image_name = $email;

    $user->save();

    return response()->json(['message' => $Success]);
}
// no need for an else block

return response()->json(['message' => $error_message]);

И для объяснения first() вернет null, если запись не найдена, что означаетfalse условие и он вернет ваше сообщение об ошибке, если найдет, он обновит ваш image_name на электронную почту.(Что не имеет смысла, но это ваш код)

0 голосов
/ 05 июня 2019

Изменить запрос. Ваш поиск не возвращает результатов.

$user = user::where('email', $email)->first();
if(isset($user))
{
$user->image_name = $email;
$user->save();
return response()->json(['message' => $Success]);
}
else
return response()->json(['message' => $error_message]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...