簡體   English   中英

在Laravel雄辯的查詢上隱藏關系

[英]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);

例如,上面僅會給您iduser_idabout字段。

編輯

如果您使用的是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM