在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页面。
答案 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');
}
}