【发布时间】:2015-01-05 08:07:05
【问题描述】:
我试图让 Laravel 允许多个路由到 1 个控制器。这样做的原因是我想将我的代码用于多个项目。想象一下:
// Routes to the products
Route::get('/products', 'ProductController@index');
Route::get('/products/{id}', 'ProductController@product');
Route::get('/products/{id}/{any}', 'ProductController@product');
和
// Routes to the products
Route::get('/items', 'ProductController@index');
Route::get('/item/{id}', 'ProductController@product');
Route::get('/item/{id}/{any}', 'ProductController@product');
这对我来说似乎有点过头了 - 我尝试创建一个自定义配置文件并添加首选 uri 的
// custom config
return array(
'product_plural' => 'products',
'product_single' => 'product'
)
并将其添加到我的路线中
// Routes to the products
Route::get(Config::get('myconfig.product_plural'), 'ProductController@index');
Route::get(Config::get('myconfig.product_single').'/{id}', 'ProductController@product');
Route::get(Config::get('myconfig.product_single').'/{id}/{any}', 'ProductController@product');
这会导致
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
这让我相信配置在路由时不可用。显然我做错了什么,我现在有点不知所措。如果有人能指出我正确的方向,我将不胜感激。
【问题讨论】:
-
运行
php artisan routes以确保您有您期望的路线,如果您仍然有问题,您应该在收到此错误时显示(您运行的 url)。 -
谢谢@MarcinNabiałek - 这向我显示了我的自定义配置文件中的一个错误 - 并且能够解决这个问题,现在一切都按我的意愿工作。