Laravel 带有动态前缀的动态路由
Laravel dynamic route with dynamic prefix
我想使用以下方法在每个组路由之前添加 customer_id。 customer_id 设置为 Session::get('customer.id').
Route::group(['prefix' => 'customer/{id}'], function($id) {
Route::get('reports/default', array('as' => 'customer_reports_path', 'uses' => 'ReportController@getDefault'))->before('customer');
Route::get('data/objects/{$object_id}', array('as' => 'customer_reports_object', 'uses' => 'DataController@getObject'));
});
第一条路线按方面工作,但是,我不知道如何正确使用第二条路线。
{{ HTML::link(route('customer_reports_object', [Session::get('customer.id'), $object_id], 'Object name') }}
link还是以404结尾。
尝试在参数中不使用 $
,即
Route::get('data/objects/{object_id}', array('as' => 'customer_reports_object', 'uses' => 'DataController@getObject'));
@MichaelColeman 是对的 $
路由参数中不允许使用符号。原因如下:
路由参数通过Regex查找,只匹配\w
(词),不包含$
Illuminate\Routing\Route@compileRoute
$uri = preg_replace('/\{(\w+?)\?\}/', '{}', $this->uri);
解决方案显然是删除 $
(一开始可能是错字)
Route::get('data/objects/{object_id}'...
并正确生成您的 link。 (我也建议你使用link_to_route
功能)
{{ link_to_route('customer_reports_object', 'Object name', [Session::get('customer.id'), $object_id]) }}
我想使用以下方法在每个组路由之前添加 customer_id。 customer_id 设置为 Session::get('customer.id').
Route::group(['prefix' => 'customer/{id}'], function($id) {
Route::get('reports/default', array('as' => 'customer_reports_path', 'uses' => 'ReportController@getDefault'))->before('customer');
Route::get('data/objects/{$object_id}', array('as' => 'customer_reports_object', 'uses' => 'DataController@getObject'));
});
第一条路线按方面工作,但是,我不知道如何正确使用第二条路线。
{{ HTML::link(route('customer_reports_object', [Session::get('customer.id'), $object_id], 'Object name') }}
link还是以404结尾。
尝试在参数中不使用 $
,即
Route::get('data/objects/{object_id}', array('as' => 'customer_reports_object', 'uses' => 'DataController@getObject'));
@MichaelColeman 是对的 $
路由参数中不允许使用符号。原因如下:
路由参数通过Regex查找,只匹配\w
(词),不包含$
Illuminate\Routing\Route@compileRoute
$uri = preg_replace('/\{(\w+?)\?\}/', '{}', $this->uri);
解决方案显然是删除 $
(一开始可能是错字)
Route::get('data/objects/{object_id}'...
并正确生成您的 link。 (我也建议你使用link_to_route
功能)
{{ link_to_route('customer_reports_object', 'Object name', [Session::get('customer.id'), $object_id]) }}