when use "Route::model" in routes.php

Route::model('pizza', 'Pizza');

Route::get('edit/{pizza}', 'PizzaController@edit');

I receive error if "id" not found in DB, how to display custom message in this status?

thanks,

有帮助吗?

解决方案

By default, Laravel will throw a 404 error if the model binding fails. So what you'll want to do is provide a closure as a third parameter to override the behavior and throw a different error:

Route::model('pizza', 'Pizza', function()
{
    throw new ModelNotFoundException; // or NotFoundHttpException or PizzaNotFoundException...
});

See: http://laravel.com/docs/routing#route-model-binding

Once you have that in place, you can catch the exception and handle it however you'd like in app/start/global.php

See: http://laravel.com/docs/errors#handling-errors

Or instead of throwing an exception, you could just use the closure to return a Redirect response to a specific page with a flash message indicating the error.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top