Laravel:尽管返回值合适,但试图获得非对象的属性

时间:2017-04-30 20:53:49

标签: laravel laravel-5.3

解决

当我到达我在模板中调用方法的页面时,我收到此错误。

ErrorException in Product.php line 104:
Trying to get property of non-object (View: C:\wamp64\www\ibpc\resources\views\admin\products\edit.blade.php)

在刀片模板中,我调用方法属性:

{{ $product->attribute($attribute->id) }}

模板中的$ product从控制器传递为:

$product = Product::with('categories.specifications.attributes')->find($id);

Product.php中的Method属性:

public function attribute($id)
{
    $attribute = $this->attributes()->find($id);
    $test = $attribute->pivot->value;

    return $test;
}

我用xdebug进行了调试,一切似乎都很好:

enter image description here

为什么会出错?

如果我这样做,那么我没有错误:

public function attribute($id)
{
    return 'Hello';
}

1 个答案:

答案 0 :(得分:0)

我必须检查空值......

public function attribute($id)
{
    $attribute = $this->attributes()->find($id);
    if ($attribute) {
        $test = $attribute->pivot->value;
    } else {
        $test = null;
    }

    return $test;
}