Laravel Eloquent属于:"试图获得非对象的属性"在没有echo / die / var_dump的情况下使用

时间:2015-01-05 08:01:09

标签: laravel eloquent belongs-to relationships

我刚刚开始使用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_dump($名);模具(); 在回来之前,它会打印出我的名字。

这里出了什么问题? :(

此致 蒂莫

1 个答案:

答案 0 :(得分:1)

<强>解

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

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

if(count($this->businesspartner))中包装有问题的部分有帮助。

有关这方面的更多信息,Jarek链接了该帖子:https://stackoverflow.com/a/23911985/784588