我在这里读到过(章节:临时修改属性可见性),我们可以暂时隐藏对象属性。
是否可以隐藏子属性?
例如://User model
class User extends 'App'AppModel
{
public function articles()
{
return $this->hasMany(Article::class);
}
}
从数组中排除:
$user = User::find($id);
$userData = $user->makeHidden(['last_name', 'articles.*.user_id'])->toArray();
dd($userData); //user_id still present in articles :(
$userData = User::with('articles')->where('id', $id)->get()->each(function($user){
$user->articles->makeHidden(['user_id']);
})->makeHidden(['last_name'])->toArray();
dd($userData);
你可以试试
$userData->articles = $user->articles()->get()->each(function($item){
$item->makeHidden(['user_id']);
});
dd($userData);