Can*_*ike 2 php model hide laravel
如何仅在某些路线中隐藏模型中的某些属性,例如:
我正在使用受保护的$ hidden来隐藏元素,但这会隐藏在我所有的函数或宁静的路线中(索引,显示)
$hidden = [
'coachVisibility', 'thumbnail', 'studentVisibility',
'isHTML', 'studentIndex', 'coachIndex',
'isURL', 'source', 'path',
'status', 'updateTime', 'isfolder',
'parentResource', 'idModifierUser', 'idResourceType',
'idCreatorUser', 'idCreationCountry', 'user',
'country', 'resource'
];
Run Code Online (Sandbox Code Playgroud)
我只想隐藏在Index函数中,而在show函数中,我不想隐藏任何东西。
您可以addHidden在模型上使用该方法:
class UsersController
{
public function index ()
{
return User::all()->each(function ($user) {
$user->addHidden([.........]);
});
}
}
Run Code Online (Sandbox Code Playgroud)
一旦此PR合并,您就可以直接在集合上调用它:
class UsersController
{
public function index ()
{
return User::all()->makeHidden([.........]);
}
}
Run Code Online (Sandbox Code Playgroud)
根据您的评论,您可以将所有这些字段保留在$hidden模型的属性中,而仅使它们在show方法中可见:
public function show($id)
{
return CTL_Resource::where('idResource', $id)
->with('tags', 'quickTags', 'relatedTo')
->firstOrFail()->makeVisible([
'coachVisibility', 'thumbnail', 'studentVisibility'
]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4403 次 |
| 最近记录: |