【发布时间】:2016-08-06 13:12:18
【问题描述】:
我正在尝试在 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']);
我可以通过访问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/105] not defined
这似乎很奇怪,因为我没有对路由进行任何更改,并且为此 url 定义了一个路由。知道我哪里出错了吗?
【问题讨论】:
标签: php laravel laravel-routing laravel-blade