我有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就是这样!谢谢!我一直在搜索谷歌,我无法相信我找不到那个。 –