我在玩Laravel模型,我需要返回一個不在數據庫表中的值,但它是通過運行模型方法來實現的。此方法運行一個查詢,該查詢對分組結果進行分組和計數。無法在模型構造函數中分配變量值
模型方法工作得很好,但我似乎並沒有能夠在構造函數中比0
不同的東西預先填寫$量可變因此,這是該模型的摘錄:
public $quantity;
function __construct($attributes = array(), $exists = false) {
parent::__construct($attributes, $exists);
$this->quantity = $this->quantity();
}
public function quantity()
{
$query = DB::table('carts_shopping')
->select('cart_id', DB::raw('COUNT(*) AS quantity'))
->where('cart_id',$this->cart_id)
->groupBy('cart_id')
->first();
return ($query) ? $query->quantity : 0;
}
雖然這是怎麼了正在嘗試從控制器的結果:
$cartitems = Auth::user()->cartshopping;
foreach ($cartitems as $cartitem)
{
echo $cartitem->name;
echo $cartitem->quantity;
}
正如你可能猜到「cartshopping」來自用戶模型存在關聯d與我粘貼的模型片段。
我還注意到quantity()方法被調用,並且它始終返回0,就像$ this-> cart_id是空的一樣,並且用實際值更改$ this-cart_id,查詢本身甚至不會執行。
非常感謝你們分享的任何建議。
你試過var_dump($ query);在返回之前?它可能不包含你的想法,或者它可能實際上是0. – vascowhite
剛剛嘗試過:不幸的是,dd($ query);返回NULL。 相同的結果設置 - >其中('cart_id',23)'23'是已知值。 –
然後您的查詢沒有返回任何結果。 – vascowhite