【问题标题】:Laravel Blank white pageLaravel 空白白页
【发布时间】:2015-10-20 07:41:52
【问题描述】:

我在群组中的获取路线有问题。这是我的代码:

Route::group(['prefix' => 'commodities'], function(){
    Route::get('commodities', [
        'as' => 'showCommodities', 'uses' => 'CommodityController@showAll'
    ]);

    Route::get('{id}', [
        'as' => 'showCommodity', 'uses' => 'CommodityController@show'
    ]);

    Route::get('add', [
        'as' => 'addCommodity', 'uses' => 'CommodityController@create'
    ]);

    Route::post('update', [
        'as' => 'updateCommodity', 'uses' => 'CommodityController@update'
    ]);

    Route::post('destroy', [
        'as' => 'destroyCommodity', 'uses' => 'CommodityController@destroy'
    ]);

    Route::post('add', [
        'as' => 'storeCommodity', 'uses' => 'CommodityController@store'
    ]);
});

我把CommodityController代码贴在这里http://pastebin.com/bWrdVhsv

除 GET 路由 commodites/add 外,一切正常。我总是得到一个白页。我的调试设置为TRUE,并且我有正确的刀片。

我错过了什么吗?

【问题讨论】:

  • 你能告诉我们你的CommodityController吗?
  • @Adrenaxus,更新了我的帖子
  • 您确定在views/pages/admin/commodity 中有一个名为add.blade.php 的文件吗?
  • 我有 add.blade.php @Adrenaxus
  • 添加了答案。您的 {id} 路由正在通过 get 请求捕获所有 url,因此 add 路由被忽略。

标签: php laravel laravel-5


【解决方案1】:

问题在于你的路线顺序。

add 路线移到您的全部{id} 路线上方。

Route::group(['prefix' => 'commodities'], function(){
    Route::get('commodities', [
        'as' => 'showCommodities', 'uses' => 'CommodityController@showAll'
    ]);

    Route::get('add', [
        'as' => 'addCommodity', 'uses' => 'CommodityController@create'
    ]);

    Route::get('{id}', [
        'as' => 'showCommodity', 'uses' => 'CommodityController@show'
    ]);

    Route::post('update', [
        'as' => 'updateCommodity', 'uses' => 'CommodityController@update'
    ]);

    Route::post('destroy', [
        'as' => 'destroyCommodity', 'uses' => 'CommodityController@destroy'
    ]);

    Route::post('add', [
        'as' => 'storeCommodity', 'uses' => 'CommodityController@store'
    ]);
});

Laravel 会从头到尾遍历你的 routes.php 文件。下面的路线基本上是一个包罗万象的路线。

Route::get('{id}', [
        'as' => 'showCommodity', 'uses' => 'CommodityController@show'
]);

这意味着它将捕获对匹配模式的 url 的所有 GET 请求:

/commodities/some-kind-of-string.

由于/commodities/add uri 与上述模式匹配,它将使用该路由,因为它首先出现在路由文件中。

【讨论】:

  • 好收获!我忽略了那个。
  • 顺便说一句,订单对这个有什么影响?
  • 我会添加更多细节,但基本上 laravel 会按顺序遍历路线。所以它首先到达{id} 路由,该路由捕获所有类似于/commodities/whatever-goes-here 的url 的get 路由
  • @FewFlyBy 在更新您的视图后检查所有视图是否按照您的路线加载
  • 将等待您的详细信息,谢谢@Jeemusu
猜你喜欢
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
  • 2014-08-14
  • 2015-04-25
  • 2016-06-30
  • 2016-07-05
  • 2021-08-12
  • 2015-06-19
相关资源
最近更新 更多