未投稿的专题文章为空,循环会报错,如何判断或者处理空的对象循环呢?

未投稿的专题文章为空,循环会报错,如何判断或者处理空的对象循环呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕小尤 2020-06-12 09:49:18

同学你好,1. 请同学查看$posts是否为null,如果不为null,则在调用$post->user->id报错,则是$post->user为null ,则此时同学就可以为其做一个判断。如下所示:

{{ $post->user or 'default ' }}

上述代码会被 Blade 引擎解析为:

echo e(isset($post->user) ? $post->user : 'default ');

判断$post->user是否存在,如果存在则正常赋值,不存在则显示defaultId 。

2. 或同学使用if判断。如下所示:

  @if(isset($post->user)) 
  <p class=""><a href="/user/{{$post->user->id}}">{{$post->user->name}}</a> {{$post->created_at->diffForHumans()}}</p>
   @endif

3. 同学也可以在user表中添加数据,使其关联起来。

祝学习愉快!

  • 提问者 精慕门5873187 #1
    我使用你说的isset和or 判断还是会报错
    2020-06-12 14:38:00
  • 好帮手慕小尤 回复 提问者 精慕门5873187 #2
    同学你好,刚是老师理解错误,建议同学先判断user,查看user是否还存在数据,如果存在,则展示user表中的字段。上一个回答已修改,同学可参考上一个回答。祝学习愉快!
    2020-06-12 15:43:13
好帮手慕小尤 2020-06-09 09:45:37

同学你好,测试代码并未发现问题,如下图所示:

http://img1.sycdn.imooc.com//climg/5edee8ed095c922b11190403.jpg

http://img1.sycdn.imooc.com//climg/5edee8fa09bef89f06250345.jpg

建议同学清除缓存重新进行测试。

    1. 浏览器缓存同学可使用Ctrl+r快捷键

    2. 同学可尝试删除缓存文件。如下图所示:

http://img1.sycdn.imooc.com//climg/5edee9aa0944b64605350473.jpg

祝学习愉快!

  • 提问者 精慕门5873187 #1
    都是我提问的啊,因为判断不了对象是否为空,所有$posts->user->id,会直接报错,我很无语,希望老师能远程帮我看下代码
    2020-06-11 19:40:01
好帮手慕小尤 2020-06-03 15:29:59

同学你好,同学可使用if判断,判断$posts是否为空。如下所示:

http://img1.sycdn.imooc.com//climg/5ed75168091ce11210070369.jpg

祝学习愉快!

  • 提问者 精慕门5873187 #1
    我使用过你这种方法,还要isempty,isexits来判断,都会出错,错误提示: Trying to get property 'user' of non-object (View: F:\phpstudy_pro\WWW\laravel.com\resources\views\topic\show.blade.php)
    2020-06-08 09:41:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP典型功能与Laravel5框架开发
  • 参与学习           人
  • 解答问题       722    个

掌握开发中必备技能解锁缓存、支付,邮件和短信发送等高端接口运用,直击工作重难点,通过开发简书项目熟练掌握Laravel5的开发技术。完成以上三个阶段的学习,成为满足企业需求的开发工程师。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师