2014-11-07 22 views

Trả lời

3

Tôi tin rằng tất cả mọi thứ được viết trong doc:

ake lưu ý rằng hùng biện giả chính nước ngoài của mối quan hệ dựa trên tên mô hình. Trong trường hợp này, mô hình điện thoại được giả sử sử dụng một khóa ngoài user_id. Nếu bạn muốn ghi đè quy ước này, bạn có thể chuyển đối số thứ hai cho phương thức hasOne. Hơn nữa, bạn có thể chuyển đối số thứ ba cho phương pháp để chỉ định cột địa phương nào sẽ được sử dụng cho liên kết:

Về cơ bản, 'local_key' là tên của cột bảng trong db của bạn để khớp với thực thể liên quan (điện thoại) với thực thể hiện tại của bạn (người dùng).

Nếu bạn nhìn vào db, tôi chắc chắn bạn sẽ tìm thấy người dùng bảng có cột phone_id, cố gắng thay đổi nó thành thứ khác (như "điện thoại") và yêu cầu hùng hồn của bạn sẽ bị lỗi. Sau đó, thay đổi cuộc gọi của bạn thành return $this->hasOne('Phone', 'user_id', 'phone'); và điều này có thể hoạt động trở lại.

+2

Tôi không hiểu bạn có thể cho tôi biết cái nào là khóa địa phương trong ảnh này http://oi61.tinypic.com/2mewz8x.jpg – apache

+0

Giả sử '$ this' là thực thể phim của bạn,' 'genre_id'' phải là local_key của bạn. Tôi không chắc chắn loại lược đồ nào được cho là mặc dù, nhưng tôi hiểu ở đây rằng bạn có mối quan hệ Nhiều-Một, vì vậy phần tài liệu bạn đang đề cập không có liên quan. Hãy xem xét việc sử dụng mysql workbench hoặc tương tự như đầu ra một sơ đồ EER hoặc như vậy ... –

+0

nếu genre_id là khóa cục bộ, vậy khóa ngoài là gì – apache

3

local_key là khóa chính của bảng. Bạn chỉ cần chỉ định nó nếu khóa chính của bạn không được gọi là id.

Các vấn đề liên quan