2017-01-14 17 views
0

私は次のモデルとコントローラを持っていますが、それはエラーを投げ続ける:Laravel 5.1コールクエリービルダー:: cartItems()

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

これは私のモデルとコントローラです:

class Cart extends Model 
{ 
    protected $fillable = [ 
     'user_id', 
     'coupon_id', 
    ]; 

    public function cartItems() 
    { 
     return $this->hasMany('App\CartItem'); 
    } 

} 


use App\Cart; 
use App\CartItem; 

class CartController extends Controller 
{ 


    public function index() 
    { 

     $userId = Auth::user()->id; 

     $cart = Cart::where('user_id', '=', $userId); 

     $cartItems = $cart->cartItems()->get(); 

     //...some other stuff... 

     return view('cart.index', compact('cartItems')); 
    } 

} 
+0

「App App \ Cartを使用する」またはモデルパスを追加しましたか? 「カート」ではなく「App \ Cart」を試してください。 – paolobasso

+0

@ paolo.basso99はい私はApp \ Cartを使用しましたが、同じエラーが発生します。私は、このエラーが発生することは明らかに明白ではありません。 – adam78

答えて

0

機能としてそれを呼び出さないでください:

$cart = Cart::where('user_id', '=', $userId)->first(); 
$cartItems = $cart->cartItems; 
Laravelは残りの世話をし、私を取得します

データベースから取得します。

+0

はすでに動作していないので、 'Undefined property:Illuminate¥Database¥Eloquent¥Builder :: $ cartItems' – adam78

+0

というエラーが表示されます。更新された答えを確認し、最初の –