我的情况:我有一个名为'staff'的表,其中包含各种成员。除此之外,我还有另一个名为'children'的表,其中包含成员的子项(使用外键'staff_id')。
现在:如何在我的员工表中添加一个名为'number_of_children'的列,其中包含'children'表中'staff_id'是我的职员名称的条目数?
附加:在儿童表中,我有一个列'考虑'。我只想考虑考虑设置为true的条目。有没有办法将其包含在模型的功能中?太棒了!
谢谢!
答案 0 :(得分:1)
你需要员工和孩子之间的关系
class Staff extends Model
{
public function children()
{
return $this->hasMany(App\Children::class);
}
}
然后,您可以像这样查询孩子
$numberOfChildren = $staffMember->children()->count();
答案 1 :(得分:1)
为什么有专门的列而不仅仅是动态计算它?这样您就不必担心每次更新等等。
在staff
模型上,只需为hasMany()
模型添加children
关系。
//Staff Model
public function children()
{
return $this->hasMany('App\Children'); //Substitute Children for the actual name of the model
}
然后,您可以随时通过$staff->children->count()
获取孩子。