【发布时间】:2016-12-07 20:21:10
【问题描述】:
我想创建一个 edit_Item 功能,但在提交编辑后的表单时我在路由方面遇到了一点问题。我收到此错误:
InvalidArgumentException in UrlGenerator.php line 314:
Route [userItems] not defined.
首先,在我的编辑页面中,我有一个表单,它从 Items 表(item_id 和 user_id)传递 2 个参数到控制器,它看起来像这样:
{!! Form::model($items, ['action' => ['ItemController@update', $items->id, $items->user_id], 'method' => 'PUT']) !!}
//Form inputs
{{ Form::close() }}
我的更新控制器如下所示:
public function update($id, $user_id){
// validate
// read more on validation at http://laravel.com/docs/validation
$rules = array(
'title' => 'required',
'description' => 'required|description',
);
// store
$items = Item::find($id);
$items->title = Input::get('title');
$items->description = Input::get('description');
$items->save();
// redirect
Session::flash('message', 'Successfully updated item!');
return Redirect::route('userItems');
}
我使用 Update 方法的 Route 如下所示:
Route::put('/userItems/{id}/{user_id}', 'ItemController@update');
现在,当我提交时,我当前被路由到:
http://localhost:8000/userItems/26/3
我需要被路由到:
http://localhost:8000/userItems/3
关于如何使 item_id(26) 从路线中消失的任何想法?
【问题讨论】:
标签: php laravel routes optional-parameters