Невозможно обновить защищенное свойство - Laravel - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь обновить столбец 'status' строки в моей базе данных.

Данные проходят нормально, например, когда я dd($request->status) получаю правильное обновление.

Но когда я пытаюсь назначить это защищенному свойству, оно возвращает 201, но не обновляет строку в базе данных.

Я использовал json_encode() и json_decode() чтобы получить доступ к свойствам, и когда я dd() объект, свойство было обновлено, просто оно каким-то образом не попадает в базу данных.

Функция обновления в моем контроллере:

    public function update(Request $request, $id)
    {
        $offer = Offer::where('id', $id)->first();

        $offer = json_encode($offer);
        $offer = json_decode($offer);

        $offer->status = $request->get('status');

        dd($offer);

        return response()->json('Status updated', 201);
    }

dd($offer) результат:

{#281
  +"id": 32
  +"user_id": 35
  +"user_email": "test@bigeights.com"
  +"display_name": "333"
  +"item_id": 1
  +"item_name": "Glass Item"
  +"item_category": "glass"
  +"offer_price": "333"
  +"status": "accepted"
  +"created_at": "2020-04-28 03:41:37"
}

Offer модель:

class Offer extends Model
{
    protected $table = "offers";
    public $timestamps = false;
}

У меня нет опыта работы с защищенными свойствами, но я предполагаю, что именно поэтому это происходит. Любая помощь приветствуется.

Ответы [ 2 ]

3 голосов
/ 05 мая 2020

Вам необходимо сохранить объект $offer, чтобы он сохранялся в базе данных после изменения статуса:

public function update(Request $request, $id)
    {
        $offer = Offer::where('id', $id)->first();

        $offer->status = $request->get('status');

        $offer->save();

        return response()->json('Status updated', 201);
    }
0 голосов
/ 05 мая 2020

Как указал передо мной @AlexW, вам необходимо сохранить модель $offer, иначе статус не будет обновлен в базе данных:

$offer->save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...