【说站】laravel实现自定义404页面并给页面传值
以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 resources/views/errors 目录中即可
当 laravel 抛出 404 时就会渲染该视图,可如果我们要在这个视图文件传递变量呢?
这时候就需要用到 view composer 了,操作如下:
创建 touch app/Providers/ViewServiceProvider.php 文件,粘贴以下代码:
<?php namespace App\Providers;use Illuminate\Support\ServiceProvider;class ViewServiceProvider extends ServiceProvider{ /** * Register bindings in the container. * * @return void */ public function boot() { view()->composer('errors::404', function () { $data = []; view()->share('title', '找不到内容'); view()->share('data', $data); }); } /** * Register the service provider. * * @return void */ public function register() { // }}
将该文件注册到服务中,在 config/app.php 的 providers 数组中加上:
App\Providers\ViewServiceProvider::class,
综上,就能向指定的视图文件传递变量,还可以用数组指定多个视图,或者用 * 指定所有视图,如:
view()->composer(['errors::404', 'home::index'], function () { view()->share('test', '测试');});view()->composer('*', function () { view()->share('hello', 'world');});
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。
本文链接:https://www.10zhan.com/biancheng/7428.html