Để đơn giản hóa cú pháp, hãy nghĩ đến return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
tham số như:
- Mô hình bạn muốn liên kết tới
- Cột của bảng ngoài (bảng mà bạn đang liên kết đến) liên kết lại với
id
của bảng hiện tại (trừ khi bạn đang chỉ định tham số thứ ba, trong trường hợp đó nó sẽ sử dụng tham số đó) - Cột của bảng hiện tại sẽ được sử dụng - tức là nếu bạn không muốn khóa ngoại của bảng khác liên kết với
id
cột của bảng hiện tại
Trong trường hợp của bạn, vì bạn đã sử dụng store_id
trong libraries
bàn, bạn đã làm cho cuộc sống trở nên dễ dàng cho chính mình. Bên dưới sẽ hoạt động hoàn hảo khi được xác định trong Store
của bạn mô hình:
public function libraries()
{
return $this->hasMany('App\Library');
}
Phía sau, Laravel sẽ tự động liên kết id
cột của Store
vào store_id
cột của Library
bảng.
Nếu bạn muốn xác định nó một cách rõ ràng, thì bạn sẽ làm như thế này:
public function libraries(){
return $this->hasMany('App\Library', 'store_id','id');
}
- Một tiêu chuẩn mô hình là các hàm được đặt tên riêng trả về một Thuộc tính, trong khi một hàm số nhiều trả về một hasMany (tức là.
$store->libraries() or $library->store()
).