2017-04-02 85 views
0

爲什麼在模板中使用括號調用方法會導致錯誤,但沒有?那麼我將如何傳遞一個參數呢?Laravel:爲什麼會導致錯誤 - 調用未定義的方法?

錯誤:

Call to undefined method Illuminate\Database\Query\Builder::test() 

index.blade.php

... 
<p class="product-price-old"><s>{{ $product->test("123") }}</s></p> 
... 

Product.php

... 
public function getTestAttribute($value) 
{ 
    return $value; 
} 
... 

但如果我做這樣的事情,它工作正常:

index.blade.php

... 
<p class="product-price-old"><s>{{ $product->test }}</s></p> 
... 

Product.php

... 
public function getTestAttribute() 
{ 
    return "123"; 
} 
... 

回答

1

getTestAttributeaccessor,所以它不是一個真正的功能。它反映了你如何獲得模型的屬性。

這就是爲什麼getTestAttribute方法,你應該使用:

$product->test 
2

如果您分配Product.php的一個實例(這應該是一個產品表的數據庫模型)來一個刀片變量,並且您的Product表中有一個名爲'test'的列,那麼您只需從模型中打印該值,而Product.php的實例中沒有test()方法。您可以檢索test屬性的值。

如果要將參數傳遞給模型中的函數,請爲函數使用不同的名稱。您無法將參數傳遞給Laravel中的accessor

相關問題