[英]Hide relationship on Laravel Eloquent query
我需要您提出有关从关系数组中隐藏信息的更好方法的建议。
$members = User::with('profile')->paginate(9);
$members->makeHidden([
'slug', 'profile.avatar'
]);
dd($members->toArray());
此代码不会从配置文件数组中隐藏信息。
谢谢
关系属性不支持makeHidden
,仅整个关系不支持。 取而代之的是:
$member = User::with(['profile' => $function($query) {
$query->select('id', 'user_id', 'about');
}])->paginate(9);
例如,上面仅会给您id
, user_id
和about
字段。
编辑
如果您使用的是5.6
也可以将列定义为逗号分隔的字符串:
$member = User:with('profile:id,user_id,about')->paginate(9);
将它们添加到模型本身。
*隐藏关系时,请使用关系的方法名称。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = ['password'];
}
这会帮你解决
https://laravel.com/docs/5.6/eloquent-serialization#hiding-attributes-from-json
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.