Asked Dec 23rd, 2020 3:55 PM 99 0 2
  • 99 0 2
0

Hỏi về thêm item trong liên kết n - n

Share
  • 99 0 2

Trước giờ em toàn dùng liên kết 1 - 1, 1 - n nay mới dùng n - n

Theo như trong ảnh thì em tạo 2 model: Product, Cart. Vì 2 bảng là quan hệ n - n nên em tạo thêm bảng trung gian: cart_product( chỉ make:migrate thôi, ko tạo model). Bây giờ em muốn người dùng click vào 1 product => thêm id của product đó và id của cart vào bảng cart_product( thêm sp vào giỏ hàng) thì phải làm thế nào ạ?? em cảm ơn

2 ANSWERS


Answered Dec 23rd, 2020 11:50 PM
Accepted
+2

Đầu tiên thì bạn cần tìm ra product mà người dùng chọn, vì bạn có id nên sẽ là

$product = Product::find($productId);

Tiếp tới thì bạn sẽ cần thêm vào bảng trung gian, ở đây thì mình sẽ dùng attach

$product->cart()->attach($cartId);

Bạn có thể tìm hiểu thêm ở đây nhé: https://laravel.com/docs/8.x/eloquent-relationships#attaching-detaching

Còn nếu bạn muốn thêm theo kiểu tự tạo trực tiếp từ bảng trung gian, thì bạn hoàn toàn có thể tạo ra model của bảng đó rồi thao tác, theo mình thấy thì cũng không vấn đề gì

Share
Avatar Nguyen Nhat @nhatnguyen123321
Jan 25th, 5:30 AM

thế bây giờ em muốn truy xuất dữ liệu từ bảng trung gian thì phải thế nào ạ?

0
| Reply
Share
Avatar Dương Mạnh Hoàng @duong.manh.hoang
Jan 25th, 7:06 AM

@nhatnguyen123321 bạn tạo model của bảng trung gian và truy vấn từ đó nhé. Hoặc dùng query builder cũng được. Laravel có những hàm hỗ trợ truy vấn n-n, nhưng nếu cần truy vấn từ bảng trung gian thì cứ làm như các bác khác thui :v

Hoặc bạn có thể search keyword này nhé wherePivot

0
| Reply
Share
Answered Dec 23rd, 2020 4:05 PM
0

2 bảng product vs cart em đã return $this->belongsToMany(...) r

Share
Viblo
Let's register a Viblo Account to get more interesting posts.