Yêu cầu thg 12 23, 2020 3:55 CH 109 0 2
  • 109 0 2
0

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

Chia sẻ
  • 109 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 CÂU TRẢ LỜI


Đã trả lời thg 12 23, 2020 11:50 CH
Đã được chấp nhận
+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ì

Chia sẻ
Avatar Chilly @nhatnguyen123321
thg 1 25, 2021 5:30 SA

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

Avatar Dương Mạnh Hoàng @duong.manh.hoang
thg 1 25, 2021 7:06 SA

@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

Đã trả lời thg 12 23, 2020 4:05 CH
0

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

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí