Я хотел бы добавить 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') }}
Ссылка все еще заканчивается в 404.
@ Майкл Колеман прав $
знаки не допускаются в параметрах маршрута. И вот почему:
Параметры маршрута находятся в регулярном выражении, которое соответствует только \w
(слова) и $
не входит
Illuminate\Routing\Route@compileRoute
$uri = preg_replace('/\{(\w+?)\?\}/', '{$1}', $this->uri);
Решение очевидно состоит в том, чтобы удалить $
(это была, вероятно, опечатка в первую очередь)
Route::get('data/objects/{object_id}'...
И правильно сгенерировать вашу ссылку. (Я также предлагаю вам использовать link_to_route
функция)
{{ link_to_route('customer_reports_object', 'Object name', [Session::get('customer.id'), $object_id]) }}
Попробуй без $
в параметре, т.е.
Route::get('data/objects/{object_id}', array('as' => 'customer_reports_object', 'uses' => 'DataController@getObject'));