资讯专栏INFORMATION COLUMN

关于目录或文章不存在的报错代码

izhuhaodev / 599人阅读

摘要:今天整理一天的部署上线没完成。不过晚上搞了一个目录或者文章报错代码。创建控制器在文件中创建函数在创建函数后,先测试路由是否打通,打通后创建报错视图文件。参考在判断取出的结果集是否为空和中表明

今天整理一天的部署上线没完成。不过晚上搞了一个目录或者文章报错代码。

1、创建路由

直接将其创建在了Home前台indexController.php主页控制器上。

Route::get("/errors/nothing","HomeindexController@nothing");
2、创建控制器

indexController.php文件中创建函数:

    public function nothing()
    {
        return view("errors.nothing");
    }

在创建函数后,先测试路由是否打通,打通后创建报错视图文件。

3、建立报错模板

建立nothing.blade.php报错文件。



    
        对不起,不存在!

        

        
    
    
        
对不起,不存在!

直接在地址栏中运行

blog/errors/nothing

显示运行正常。


4、创建中间件

利用composer创建中间件:

php artisan make:middleware CheckAge

创建完成后
撰写内容

    public function handle($request, Closure $next)
    {
        $_arti=Article::where("art_id",$request->art_id)->find($request->art_id);
        if (!$_arti){
            return redirect("errors/nothing");
        }
        return $next($request);
    }
5、在路由上增加中间件功能
Route::get("/a/{art_id}","HomeIndexController@article")->middleware("checkArt");

测试通过。


6、后记

在创建中间件时候,确实测试了好多代码。
显示看网上如何判断空结果集。

即使取到的空结果集Eloquent仍然会返回IlluminateDatabaseEloquentCollection对象实例。这个我曾经也测试过,确实dd()测试之后含有结果集输出,只是输不了数据库中的字段内容,所以采用if()字段判断时,依然失效。

其实,Eloquent已经给我们封装几个判断方法。

$result = Model::where(...)->get();
//不为空则
if ($result->first()) { } 
if (!$result->isEmpty()) { }
if ($result->count()) { }

但是使用->get()显示这是一个无定义字段,后来发现find()可以使用,具体原因待好好看手册再分析。

参考:
在Laravel Eloquent 判断取出的结果集是否为空http://www.cnblogs.com/wuoshi...和Eloquent collection: counting and detect empty http://stackoverflow.com/ques...中表明:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22956.html

相关文章

  • 初次接触ReactNative,搭建环境、调试时遇到报错们及解决方法

    摘要:初次搭建总会碰上各种报错以及红黄屏报错如果尚未搭建环境,请转至官网搭建红屏是程序无法正常运行,黄屏是程序可以运行但是可能存在一些潜在问题首次使用命令行工具来创建一个名为的新项目后运行后会报错,如图解决方法到你的已有项目中复制一份文件到 初次搭建ReactNative总会碰上各种报错以及红黄屏报错如果尚未搭建环境,请转至官网搭建https://reactnative.cn/docs/g....

    elliott_hu 评论0 收藏0
  • Source Map入门教程

    摘要:多个文件合并,减少请求数。生成的多了,表示文件的位置。转换前的所有变量名和属性名。自从年双十一正式上线,累计处理了亿错误事件,得到了金山软件等众多知名用户的认可。 部署前端之前,开发者通常会对代码进行打包压缩,这样可以减少代码大小,从而有效提高访问速度。然而,压缩代码的报错信息是很难Debug的,因为它的行号和列号已经失真。这时就需要Source Map来还原真实的出错位置了。 sho...

    archieyang 评论0 收藏0
  • [译] Plaid 应用迁移到 AndroidX 的实践经历

    摘要:它是对的重大改进和全面替代方案。一个更直接的方法是开始迁移,并且检查可能出现的报错。迁移工具位于菜单栏的选项。这个选项将迁移整个项目的所有模块。中的迁移工具是迁移的主要方式。迁移应用变更最少的代码以保证应用可以仍能正常运行。 原文地址:Cross-stitching Plaid and AndroidX 原文作者:Tiem Song 译文出自:掘金翻译计划 本文永久链接:github.co...

    番茄西红柿 评论0 收藏0
  • Django搭建个人博客:日志记录

    摘要:每一条日志记录也包含级别,代表对应消息的严重程度。即格式化器,主要功能是确定最终输出的形式和内容。最好是日志能够按自然天进行记录和分割。 上一章学习了自动化测试,很好,现在我们可以绞尽脑汁写出一份全面的测试,来保证代码永远健康了。 话虽如此,但是作为一个独立开发者很难写出真正全面的测试代码。这是因为用户在使用你的网站时可不会循规蹈矩,而是会以各种怪异的姿势浏览网页、上传数据。但这也不是...

    Lowky 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<