2017-01-14 3 views
0

У меня есть следующие модели и контроллер, но он держит ошибку метание:Laravel 5,1 Призыв к неопределенным метод Осветите Database Query Builder :: 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 \ Cart» или путь к модели в верхней части? попробуйте «App \ Cart» вместо «Корзина». – paolobasso

+0

@ paolo.basso99 yes Я использовал App \ Cart, но он выдает ту же ошибку. Кажется, я не могу найти ничего очевидного, что бы выбросить эту ошибку. – adam78

ответ

0

не называйте его как функцию:

$cart = Cart::where('user_id', '=', $userId)->first(); 
$cartItems = $cart->cartItems; 

Laravel позаботится об остальном, и получить I тем из базы данных.

+0

уже пробовал, что он не работает, дает ошибку 'Undefined property: Illuminate \ Database \ Eloquent \ Builder :: $ cartItems' – adam78

+0

Проверьте обновленный ответ, вам нужно выбрать первую() запись, чтобы получить экземпляр модели –

Смежные вопросы

 Смежные вопросы