[英]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.