Как использовать модель в параметре функции, чтобы уменьшить код в laravel? - PullRequest
0 голосов
/ 31 марта 2020

Вот как я пытаюсь обновить запись в моей laravel функции, которая не работает

  public function completePacking(SaleOrder $saleOrder)
  {
    $saleOrder->update(['status' => 'Draft']);
  }

она работает

  public function completePacking($id)
  {
     $saleOrder = SaleOrder::findOrFail($id);
     $saleOrder->status = 'Dispatched';
     $saleOrder->save();
}

я хочу использовать первый метод потому что это меньше кода, но это не работает

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Добавьте «status» к вашему атрибуту $ fillable в вашей модели SaleOrder.

Или удалите «status» из атрибута $ guarded в модели SaleOrder.

После выполнения любого из следующих действий вы будет иметь возможность использовать желаемую версию для обновления статуса.

Подробнее о https://laravel.com/docs/5.7/eloquent#mass -assignment

0 голосов
/ 31 марта 2020
$saleOrder = SaleOrder::where('id', $id)->update(['status' => 'Draft']);
...