如果没有控制器操作,则可以将其检查为
if(! method_exists($controller, $action)) {
return 404;
}但是当有没有控制器时,我得到了这个错误
Illuminate\Contracts\Container\BindingResolutionException
Target class [\App\Http\Controllers\DashboardController] does not exist.但是,是否有可能显示自定义的404刀片页面呢?
发布于 2021-03-27 14:31:43
正如Droid所指出的,
.env文件中设置APP_DEBUG=false .然后,
php artisan vendor:publish --tag=laravel-errors (存储项目的位置)。所有的Laravel设计的错误页面(40倍,50倍,等等)将显示.在这里的
从那时起,不管有什么错误消息,不管您是否处理了您的URL,或者服务器端发生了什么,您都会看到您的自定义错误页面。
发布于 2021-03-23 05:53:39
因此,所有默认的Laravel错误页面都可以找到./vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views。
您可以运行此命令来自己发布错误视图页并自定义它们。php artisan vendor:publish --tag=laravel-errors,那么它们将被定位为./resources/views/errors
另外,您应该使用abort(404)而不是返回404。这将在您的render中触发App\Exceptions\Handler,如果您没有覆盖此方法,它将使用Laravel默认值。但是要覆盖你可以做到
app/Exceptions/Handler.php
public function render($request, Throwable $exception)
{
$response = parent::render($request, $exception);
if (response->status() === 404) {
// return something custom
}
return $response;
}您可以在这里跟踪文档,https://laravel.com/docs/8.x/errors#custom-http-error-pages。希望这能有所帮助!
发布于 2021-03-23 05:53:38
尝尝这个
Route::any('/', function () {
//
});
for unknown controller and make a view
[documentation][1] :https://laravel.com/docs/8.x/routinghttps://stackoverflow.com/questions/66757758
复制相似问题