Я пытаюсь создать форму в laravel для обновления некоторых данных. Я начал с использования следующего в моем шаблоне лезвия, чтобы заполнить форму данными из модели:
{{ Form::model($sensor, array('action' => 'settingsController@editSensor', $sensor->s_id)) }}
$ sensor отправляется в представление из контроллера следующим образом:
return view('settings.sensors.edit')->with('sensor', App\Sensor::find($sensorId))
В документации не указано, нужно ли мне также использовать Form :: open, но тег открытия формы уже создан, поэтому я решил, что этого будет достаточно.
В моих маршрутах есть следующие маршруты:
Route::get('/settings/sensors/edit/{sensorId}',['as' => 'sensor.edit', 'uses' => 'settingsController@editSensor']);
Route::post('/settings/sensors/edit/{sensorId}',['as' => 'sensor.edit', 'uses' => 'settingsController@editSensor']);
Я мог получить доступ к форме, перейдя по URL-адресу, например http://localhost:8000/settings/sensors/edit/105, предварительное заполнение данными из модели сработало отлично.
Проблема, с которой я столкнулся, заключалась в том, что кнопка отправки теперь работала. Он будет отправлен на http://localhost:8000/settings/sensors/edit/%7BsensorId%7D Очевидно, что параметр sensorId подставлялся неправильно.
Я переписал вызов функции Form :: model после того, как погуглил:
{{ Form::model($sensor, array('route' => route('sensor.edit',$sensor->s_id)), $sensor->s_id) }}
Теперь, когда я открываю страницу, я получаю сообщение об ошибке: Route [http://localhost:8000/settings/sensors/edit/105estive не определено
Это кажется странным, поскольку я не менял маршруты, а для этого URL-адреса определен маршрут. Есть идеи, где я ошибаюсь?