Php laravel表单生成错误的操作url/路由错误

Php laravel表单生成错误的操作url/路由错误,php,laravel,laravel-routing,laravel-blade,Php,Laravel,Laravel Routing,Laravel Blade,我正在尝试在laravel中创建一个表单来更新一些数据。 我首先在我的blade模板中使用以下内容用模型中的数据填充表单: {{ Form::model($sensor, array('action' => 'settingsController@editSensor', $sensor->s_id)) }} $sensor通过以下方式从控制器发送到视图: return view('settings.sensors.edit')->with('sensor', App

我正在尝试在laravel中创建一个表单来更新一些数据。 我首先在我的blade模板中使用以下内容用模型中的数据填充表单:

{{ Form::model($sensor, array('action' => 'settingsController@editSensor', $sensor->s_id)) }}    
$sensor通过以下方式从控制器发送到视图:

return view('settings.sensors.edit')->with('sensor', App\Sensor::find($sensorId))
文档没有明确说明我是否还需要使用Form::open,但是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来访问表单,比如,使用来自模型的数据进行前缀就像一个符咒

我遇到的问题是提交按钮现在不起作用了。它将服从于 显然,传感器ID参数没有被正确地替代

在谷歌搜索了一下后,我重写了Form::model函数调用:

{{ Form::model($sensor, array('route' => route('sensor.edit',$sensor->s_id)), $sensor->s_id) }}    
当我现在打开页面时,我直接得到这个错误:Route[notdefined]


这似乎很奇怪,因为我没有更改路由,并且有一个为此url定义的路由。知道我哪里出了问题吗?

您实际上是在复制路由调用。当您这样做时,
Form::model($sensor,array('route'=>
,Laravel已经知道您正在尝试访问一个命名路由,并且需要一个路由名称。因此,当您执行
路由(…)
,它首先转换该路由调用,然后再尝试查找名为该路由的路由

换句话说,它并不是在抱怨页面
http://localhost:8000/settings/sensors/edit/105
不存在-它抱怨没有一条路线将其作为其
名称

删除它,用一个带有路由名称和参数的数组替换它。然后还可以去掉额外的
$sensor->s_id
,如下所示:

{{ Form::model($sensor, array('route' => array('sensor.edit', $sensor->s_id))) }}