1) лучше использовать Request - документация
https://laravel.ru/docs/v5/requests
2) Нужно добавить валидацию -
https://laravel.ru/docs/v5/validation
3) В отличии от предыдущего комментатора скажу что это совсем не норм.
Код в контроллере заменить на этот:
public function postEditWinAuction(Request $request){
$this->validate($request, [
'idauction' => 'required|integer', // Если должен быть обязательным
// Тут условия для остальных полей
]);
$values = $request->only([
'protokol',
'kontrakt',
'firm_id',
'status',
]);
return Auction::find($request->idauction)->update($values);
}
Чтобы работал Model::update() в модели нужно разрешить поля для массового заполнения
class Auction extends Model
{
protected $fillable = [
'protokol',
'kontrakt',
'firm_id',
'status',
];
}
Удалить ту часть которая находится в Модели. Там не должны производится сохранения и хранится прочие функции для этого можно использовать трейты.
Для всех полей которые могут быть null в миграции надо добавить ->nullable()
Schema::create('auctions', function($table)
{
$table->increments('id');
$table->string('firm_id')->nullable();
});
Тогда тот вариант который написал я будет правильно отрабатывать даже если firm_id не приходит в данных.
Вообще рекомендую прочитать документацию целиком. Тогда будет представление какие плюшки есть в Laravel "из коробки".