【发布时间】:2015-03-03 11:32:00
【问题描述】:
我遇到了一个关于 laravel 的有趣问题,有些路由运行良好,有些返回 404,这很奇怪,但请参阅下面的示例。
这是路由运行良好的示例:
Route::get('login', array('uses' => 'HomeController@showLogin'));
Route::post('login', array('uses' => 'HomeController@doLogin'));
但是这个路由返回错误:
Route::get('import', array('uses'=>'ImportController@importForm'));
控制器:
class ImportController extends BaseController {
public function importForm() {
return "Import From";
}
堆栈跟踪:
Symfony\Component\HttpKernel\Exception\NotFoundHttpException thrown with message ""
Stacktrace:
#11 Symfony\Component\HttpKernel\Exception\NotFoundHttpException in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php:148
#10 Illuminate\Routing\RouteCollection:match in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1049
#9 Illuminate\Routing\Router:findRoute in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1017
#8 Illuminate\Routing\Router:dispatchToRoute in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Routing/Router.php:996
#7 Illuminate\Routing\Router:dispatch in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:776
#6 Illuminate\Foundation\Application:dispatch in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:746
#5 Illuminate\Foundation\Application:handle in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Session/Middleware.php:72
#4 Illuminate\Session\Middleware:handle in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Cookie/Queue.php:47
#3 Illuminate\Cookie\Queue:handle in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Cookie/Guard.php:51
#2 Illuminate\Cookie\Guard:handle in /var/www/html/inventory/vendor/stack/builder/src/Stack/StackedHttpKernel.php:23
#1 Stack\StackedHttpKernel:handle in /var/www/html/inventory/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:642
很奇怪不是吗?
然后我尝试添加默认路由(您已经到达):
Route::get('/', function() {return View::make('hello');}); //WORKS WELL
Route::get('/sku', function() {return View::make('hello');}); //DOES'N WORK :)
请看一下,告诉我我做错了什么?
谢谢,新年快乐!
更新:
这些路线也很有效:
Route::get('orders', array('before' => 'auth', 'uses'=>'InventoryController@showOrdersTable'));
Route::get('api/orders', array('as'=>'api.orders', 'uses'=>'InventoryController@getOrdersDatatableJSON'));
Route::match(array("POST", "GET"), 'api/orders/note/save', array('as'=>'api.note', 'uses'=>'InventoryController@saveNote'));
Route::match(array("POST", "GET"), 'api/orders/tracking/save', array('as'=>'api.tracking', 'uses'=>'InventoryController@saveTracking'));
Route::match(array("POST", "GET"), 'api/orders/status/update', array('as'=>'api.status', 'uses'=>'InventoryController@updateStatus'));
Route::match(array("POST", "GET"), 'system/update', array('as'=>'api.update.system', 'uses'=>'InventoryController@updateDatabase'));
【问题讨论】:
-
我猜你没有正确设置你的 mod_rewrite 规则。 laravel.com/docs/4.2/installation#pretty-urls
-
感谢您的回答,这很奇怪,但我有更多路线,而且这些路线运行良好……我还启用了 mod_rewrite。 localhost/login - 工作,localhost/sku - NOP ))
-
你还有哪些路线?有什么包罗万象的吗?
-
routes.php文件的完整内容可能会有所帮助。 -
我在描述上添加了一些更新,有些路线效果很好,谢谢
标签: laravel routes http-status-code-404