如何检测缺失参数路由并显示相关消息

时间:2014-01-22 17:47:25

标签: php laravel laravel-4

在Laravel 4上工作,我创建了以下路线并能够获取ID:

Route::get('details/{ID}', 'Exchange@details');

问题是当我在路线中遗漏ID时,它显示:NotFoundHttpException错误。我想避免这种情况。我该怎么办?即使在global.php中,我添加了以下但没有工作:

App::missing(function($exception)
{
    print "Not Found";
//  return Response::make(
//      View::make('errors/404')
//  , 404);
});

控制器方法

public function details($exchangeID)
        {
            echo "Print Details";
            echo $exchangeID;
            if(intval($exchangeID) == 0)
            {
                throw new NotFoundException;
            }
        }

更新:重定向到404工作的建议,但我更感兴趣的是检测丢失的ID并使用正确的消息信息加载我自己的视图,而不是显示简单的404页面。

2 个答案:

答案 0 :(得分:2)

试试这样:

App::missing(function($exception)
{
    return View::make('errors.404');
});

该视图位于views / errors / 404.blade.php

答案 1 :(得分:2)

我会尝试这样的事情

# file routes.php
Route::get('{ID?}', 'SomeController@getDetails')



# file SomeController.php
function getDetails($ID=null) {
    if empty($ID) {
        return Redirect::to('PREVIOUS PAGE')
            ->withInput()
            ->with('error', 'invalid value');
    }
}