gpt4 book ai didi

php - Laravel 如何在分页模型上显示 $hidden 属性

转载 作者:可可西里 更新时间:2023-11-01 12:52:05 26 4
gpt4 key购买 nike

我正在使用 Laravel 5.5。我读到了这个并且知道这个功能并且它有效makeVisible

$hidden = ['password', 'remember_token', 'email'];

我可以使用

显示电子邮件
$profile = auth()->user()->find($request->user()->id);
$profile->makeVisible(['email']);

在前端显示电子邮件。但它不适用于许多结果,例如

 // Get all users
$users = User::with('role', 'level')->makeVisible(['email'])->paginate(10); // Doesn't work

也试试这个方法from Laracasts toJson它有效,但我不能使用分页来做到这一点。你能提供其他方法或如何解决这个问题吗?我的目标是显示隐藏的 email 列。谢谢。

最佳答案

我用这个方法解决了这个问题。

模型上的Users.php

public function toArray()
{
// Only hide email if `guest` or not an `admin`
if (auth()->check() && auth()->user()->isAdmin()) {
$this->setAttributeVisibility();
}

return parent::toArray();
}

public function setAttributeVisibility()
{
$this->makeVisible(array_merge($this->fillable, $this->appends, ['enter_relationship_or_other_needed_data']));
}

在 Controller 上只是一个简单的

return User::with('role', 'level')->paginate(10);

在创建分页之前,我已经阅读了分页来自 toArray 的地方。感谢你的帮助。 Also helps

关于php - Laravel 如何在分页模型上显示 $hidden 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48655161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com