Один столбец не обновляется в laravel 5 - PullRequest
2 голосов
/ 29 сентября 2019

Я пытаюсь обновить один столбец таблицы сообщений, и у меня есть следующий код:

  public function messageSeen(Request $request){
        $data = Message::find($request->id);
        $success = Message::where('id', $request->id)->update(array('is_seen' => 1));
        if($success){
            return response()->json(['status'=>'success'], 200);
        } else {
            return response()->json(['status'=>'Data not updated'], 404);
        }
    }

Я получаю ответ Данные не обновлены.Если вы спросите, существует ли столбец is_seen ?тогда да, это так.Даже я пытался получить данные с идентификатором $request->id, он дает правильные данные.Интересно, почему данные не обновляются?Правильно ли я делаю обновление столбца или есть выход для обновления столбца другим способом?

Я попробовал другой способ, подобный следующему:

public function messageSeen(Request $request){
        $id = $request->id;
        $result = Message::find($id);
        dd($result->message);
        $data = array();
        $data['is_seen'] = 1;
        $data['message'] = $result->message;
        $data['user_id'] = $result->user_id;
        $data['conversation_id'] = $result->conversation_id;
        $this->messages->fill($data);
        $success = $this->messages->save();
        if($success){
            return response()->json(['status'=>'success'], 200);
        } else {
            return response()->json(['status'=>'Data not updated'], 404);
        }
    }

Но здесь я получаю неожиданную вещь с этим методом.Здесь я могу сделать dd ($ result) и получить данные, подобные этому:

#attributes: array:9 [
        "id" => 22
        "message" => "How are you?\r\n"
        "is_seen" => 0
        "deleted_from_sender" => 0
        "deleted_from_receiver" => 0
        "user_id" => 2
        "conversation_id" => 1
        "created_at" => "2019-09-29 03:42:39"
        "updated_at" => "2019-09-29 03:42:39"
      ]

однако, если я попытаюсь сделать dd ($ result-> message), то получу ноль!Где я делаю что-то не так?

Я попробовал следующий код:

public function messageSeen(Request $request){
        $id = $request->id;
        $result = Message::find($id);
        $data = array();
        $data['is_seen'] = 1;
        $data['message'] = $result[0]['message'];
        $data['user_id'] = $result[0]['user_id'];
        $data['conversation_id'] = $result[0]['conversation_id'];
        $this->messages->fill($data);
        $success = $this->messages->save();
        if($success){
            return response()->json(['status'=>'success'], 200);
        } else {
            return response()->json(['status'=>'Data not updated'], 404);
        }
    }

, и он сработал, но вместо обновления он добавляет новый столбец при просмотре сообщения.Но сначала я не понимаю, почему я должен делать $ result [0] ['key'] в первую очередь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...