LaravelVietnam / laravel-solutions

A Q&A board for helping members
27 stars 4 forks source link

[Eloquent] Cập nhật item có relationship has-many #18

Closed giangphan closed 8 years ago

giangphan commented 8 years ago

Hiện tại em có 3 Model với relationship như sau: DonHang->hasOne(KhachHang::class); DonHang->hasMany(SanPham::class);

Khi thực hiện edit/update DonHang thì em update lần lượt như sau: $donHang->khachhang->update($request->all()); $donHang->update($request->all());

Nhưng muốn update các sanPham trong donHang đó thì mình dùng như thế nào là đúng ạ?

Em xin cảm ơn ạ.

tonamson commented 8 years ago

capture

Đây là code mình sử dụng cho các Model N-N gồm:

Bạn coi tham khảo nhé Mình dùng Sync để thực hiện

Ở file Model Group của mình đoạn code để kết nối với bảng kia Đoạn method liên kết như sau:

public function functionweb()
    {
        return $this->belongsToMany('App\FunctionWeb','group_functions','groups_id','functions_id')->withPivot('group_functions_add','group_functions_edit','group_functions_remove','group_functions_view','group_functions_exportexcel','group_functions_print');
    }

Còn đây là phía mình giải thích cách sử dụng

Cách dùng N-N $this->belongsToMany('App\FunctionWeb','group_functions','groups_id','functions_id');

Theo cách hiểu đơn giản như sau: $this->belongsToMany(Model bảng N cần kết nối, Tên bảng trung gian, Foreign Key bảng đang bị nối, Foreign Key bảng N cần kết nối); Nếu chưa rõ VD như sau:

capture Bảng A đang muốn truy xuất vào Bảng B thông qua quan hệ N-N, thì ta cần phải có thêm bảng trung gian đó là Bảng C

$this->belongsToMany(B,C,CA,CB);

giangphan commented 8 years ago

@tonamson Cám ơn bạn nhiều. Chi tiết quá 💃