我已成功在模型中创建了一些关系。这是用户模型
<?php
class User extends BaseModel{
protected $table = 'users';
public function group(){
return $this -> belongsTo('UserGroup');
}
...
}
?>
这是UserGroup-model(UserGroup.php)
<?php class UserGroup extends BaseModel{ ... } ?>
每个用户都可以在一个组中(database-column在users-table中称为'group_id')。如果我想对这种关系进行热切加载,那么对于其他模型来说,它的效果非常好。
问题是我有一些拥有大量外键的模型,我不想手动创建所有关系。我想在BaseModel中创建一个自动创建所有关系的函数,比如
public function group(){
return $this->belongsTo('Group');
}
基于我将在每个模型中提供的数组,看起来像这样
protected $foreignKeys = array(array('key' => 'group', 'model' => 'UserGroup'), ...);
我已经读过你可以使用一个名为'with'的数组,但它对我不起作用。我读到的其他地方我应该使用查询范围,但我不知道这对我有什么帮助。
感谢阅读和支持!
最好的问候,Marcel
答案 0 :(得分:0)
Ardent提供了类似于您想要实施的内容:https://github.com/laravelbook/ardent/blob/master/src/LaravelBook/Ardent/Ardent.php#L347-L350。
根据评论:
您最终可能会找到更适合您情况的类似Ardent的解决方案。将数组中的所有关系呈现为将它们定义为方法的更多优势 - 如果需要,可以搜索这些数组等。所以这可能是你的选择