Laravel輸出JSON時設定輸出字段的幾種情況總結


1.如果輸出json的時候需要屏蔽某些字段,或則想自定義顯示的字段:

 

1.model里面設置

  protected $hidden = ['password'];//要屏蔽的字段

 

2.model里面設置

  protected $visiable = ['name'];//要顯示的字段

 

3.查詢的時候用distinct,指定要顯示的字段

XX::distinct([你要顯示的字段]);

 

4.查詢的時候在get或first指定要顯示的字段

XX::get([你要顯示的字段]);

 

2.如果用到了relationship,同時也想輸出relationship的數據:

在查詢語句加上->with('你relationship函數的名字');

 

3.如果用到了relationship,數據處理的時候會用,但輸出的時候不想輸出XXX_ID:

這個是我自己遇到的問題,因為你取到數據后,不可以再使用first()等這些builder的方法定義輸出字段,那會重新進行數據庫查詢,可以考慮

 

新建一個子model 

class BoyJson extends \Eloquent {

    protected $table = "boys";
    protected $hidden = ['user_id', 'updated_at'];
   protected $fillable = [ 'id', 'text', 'img_path'];//把你想輸出的字段加上

    public static function extract(Boy $s) {
        $res = new BoyJson();
        $res->fill($s->toArray());
        return $res;
    }

}

這樣的好處是結構清晰,寫起來簡單,但是感覺太麻煩了點,哪位大神知道有什么現場的函數還求指點,找了api文檔沒找到。

P.S.

希望能幫助到誰

自己建的一個群,希望廣結英豪,尤其是像我一樣腦子短路不用react硬拼anroid、ios原生想干點什么的朋友。

App獨立開發群 533838427


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM