我有3種型號在我Laravel 4項目:Employee
,EmployeeClass
,Employer
:Laravel 4:模型關係不工作(有點)?
class Employee extends Eloquent {
protected $table = 'users';
public function employee_class() {
return $this->belongsTo('EmployeeClass', 'employee_class_id');
}
}
class EmployeeClass extends Eloquent {
protected $table = 'employee_classes';
public function employees() {
return $this->hasMany('Employee');
}
public function employer() {
return $this->belongsTo('Employer');
}
}
class Employer extends Eloquent {
protected $table = 'employers';
public function employee_classes() {
return $this->hasMany('EmployeeClass');
}
}
的EmployeeClass
關係正常工作。我可以執行EmployeeClass::find(1)->employees;
或EmployeeClass::find(1)->employer;
並返回該對象。
試圖在其他兩個上撥打相同的電話(以檢索與EmployeeClass
的關係)不起作用。這兩個行返回空集:
Employee::find(1)->employee_class;
Employer::find(1)->employee_classes;
然而,奇怪的是,這兩個線路的正常工作:
Employee::find(1)->employee_class()->first();
Employer::find(1)->employee_classes()->first();
第一個例子返回NULL(我認爲它應該返回一個Collection
)。第二個示例返回一個EmployeeClass
對象(預期的實例)。
我想指出,每個表中有一個條目,其中id
爲1,並且每個表中都設置了FK = 1,因此它們應該正確連接。事實上,我認爲EmployeeClass
工作正常,事實上獲取查詢並執行它(在第二個成功的代碼集合中)也可以做到這一點,可以證明這一點。
我確定我只是在做一些愚蠢的事情;也許另一組眼睛會幫助!
我可以使用的解決方法(第二組代碼),因爲它似乎是工作,但我想獲得它的清潔和正確的,如果可能的話...
你在工匠 – rjm226
HTTP生成這些.io/viewtopic.php?pid = 53285#p53285 – matpop
@matpop就是這樣!謝謝!我一直在搜索谷歌,我無法相信我找不到那個。 –