1
我有一个组模型,其中定义了几个关系。现在我想通过各种参数浏览组。例如,一个组可以有一个“兴趣”,它被定义为模型中的关系。所以如果我选择一个特定的兴趣,它应该显示所有相关的组。如何检查laravel中的模型之间的有效关系
public function browse(Request $request)
{
// $browseField is the field we are browsing against, $fieldId is the primary key for that relationship
// I want $browseField to be a valid relationship
$browseField = $request->browseField;
$fieldId = $request->fieldId;
$groups = \App\Group::whereHas($browseField, function($q) use($fieldId) {
$q->where('id', $fieldId);
})->get();
$data = ['groups' => $groups];
return $this->sendResponseData($data);
}
现在我不想为每个关系定义相同的过程,并将关系名称作为参数。
现在这项工作如果正确$browseField
是有效的关系。但是,如何检查关系是否真的存在。我应该按照这种方式进行筛选,还是有更好的方法?
编辑
为了更好地解释什么,我想做的事, 组有“年龄组”,“种族”等,如果我想按年龄分组进行浏览,我将提供$browseField = ageGroup
(ageGroup
是关系),$browseField = ethnicity
供种族浏览。现在,如果有人决定提供无效的$browseField = asfasf
,代码会抛出错误。这是我想什么来防止
从它听起来,你会过得更好使用'利息:: belongsToMany(“集团”);'你的兴趣模型 – scottevans93
如果你正确地做了MVC,你永远不需要检查模型类之间的连接,你明确地提供了这个。 –