J'ai un Cart
modèle comme celui-ci :
class Cart extends Model
{
protected $table = 'cart';
protected $fillable = ['user_id', 'delivery_method'];
public function products ()
{
return $this->belongsToMany(Product::class, 'cart_products', 'cart_id', 'product_id')->withPivot('quantity');
}
}
Et chariot Les colonnes du tableau sont :
id
user_id
delivery_method
created_at
updated_at
Et il y a un tableau croisé dynamique nommé cart_products
de se rapporter Card
à un modèle Product
Modèle.
Supposons que j'aie un spécifique $user_id
Maintenant je veux que le panier avec cet user_id avec leurs produits. pour cela j'ai écrit ceci :
$cartWithProducts = Cart::with('products')->where(['user_id' => $user_id])->first();
if (!$cartWithProducts->isEmpty()) {
//Some codes come here
}
Mais après l'exécution, j'ai eu cette erreur :
Call to undefined method Illuminate\Database\Query\Builder::isEmpty() {"exception":"[object] (BadMethodCallException(code: 0): Call to undefined method Illuminate\\Database\\Query\\Builder::isEmpty() at D:\\wamp\\www\\barlly\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php:2461
Je ne veux pas utiliser chargement paresseux approche car demande de renseignements problème. quelle est la solution dans ce cas ?
De plus, chaque utilisateur ne peut avoir qu'un seul panier à la fois.