假设我们在控制器中有类似的东西
if ($request->input('with')) {
$query->with($request->input('with'));
}
所以现在我们的前端可以动态地仅请求所需的关系,像这样
GET http://example.com/controller?with[]=some_relation&with[]=another_relation
我看到的唯一安全性问题是,如果我们需要隐藏某些关系(根据我们的隐私权政策),那么我们可以为该关系另外实现“ $ fillable”之类的东西。
但是还有其他安全问题吗?这是个好习惯吗?
答案 0 :(得分:0)
我要做的是在每个模型中设置一组关系。
public const $relationships = ['comment', 'categories'];
然后在我的控制器中,我将检查参数并仅获得有效关系
$included = $request->has('included') ? $request->included : [];
if(!empty($included)) {
$included = array_intersect(explode(',', $included), Quotation::relationships);
}
然后渴望像往常一样加载结果。任何建议或改进都表示赞赏。
$data = Quotation::with($included)->get()