提问者:小点点

Laravel雄辩地说:“在没有echo/die/var_dump的情况下使用时,尝试获取非对象的属性”


我刚从Laravel和Eloquent开始。在我的“收据”模型中,我试图获得一段关系的信息。只要我使用var_dump,我就能得到我的信息。当我刚刚返回在刀片视图中使用它的值时,我得到了我的“尝试获得非对象的属性”。

<?php

class Receipt extends Eloquent  {
    public function businesspartner()  {
        return $this->belongsTo('Businesspartner', 'f_businesspartner_id');
    }

    public function brand()  {
        return $this->belongsTo('Brand', 'f_brand_id');
    }

    public function invoice()  {
        return $this->belongsTo('Invoice', 'f_invoice_id');
    }

    public function name()  {
        $name = '';

        $bp = $this->businesspartner()->first();

        $name = $bp->salutation; // line 21
        $name .= ' ';
        $name .= $bp->lastname_company;


        return $name;
    }
}

错误出现在第21行。

当我现在放置一个var_转储($name);模具();在回来之前,它会打印我的名字。

这里怎么了(

问候提莫


共1个答案

匿名用户

解决方案

正如@Jarek Tkaczyk所写的,我在循环中调用name()方法。

在执行调试输出时,我从第一行获取数据。获取错误时,代码已经在处理第二行,其中外键为null。

if(计数($this)中包装有问题的部分-

关于这方面的更多信息,Jarek链接了那篇文章:https://stackoverflow.com/a/23911985/784588