亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel - 檢查關系是否存在

Laravel - 檢查關系是否存在

PHP
aluckdog 2022-10-22 15:57:46
我正在嘗試檢查模型是否具有使用關系with('')$currentUser = User::with('account.member.country', 'identity')->first();$relations = collect($currentUser->getrelations())->values();  //or without converting與getrelations()我可以得到帳戶和身份關系只要存在嵌套關系,我如何動態創建并檢查帳戶是否也有關系(成員)?我的意思是在我的示例中使用嵌套關系,成員是來自帳戶的嵌套關系,而國家/地區是來自成員的嵌套關系。
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

檢查關系鍵是否已設置,即

!empty($post->user_id)

這樣可以避免不必要的數據庫查詢。顯然,這只適用于 belongsToRelationships。

對于其他關系類型,可以使用類的 has 方法,即

Post::has('user')

如果你已經有了模型,你可以做$post->newQuery()->has('user');or $post->user()->exists()。

所以,是的,有很多不同的選擇。

看看 Laravel 文檔是怎么說的


查看完整回答
反對 回復 2022-10-22
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

不確定您是否在尋找什么,但您可以使用 exists 輔助方法,如果關系存在,該方法將返回一個布爾值,

User::first()->has('dogs')->exists();

如果第一個用戶與狗有關系,將返回 true。


查看完整回答
反對 回復 2022-10-22
?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

我發現解決方案基本上是一個遞歸函數


protected  $relationNames = [];


function recursive($model){


        foreach($model as $key => $value){


           $this->relationNames[$key] =$value;


            if(count($value->getrelations()) > 0){


                $this->recursive($value->getrelations());

            }

        }

  }


查看完整回答
反對 回復 2022-10-22
  • 3 回答
  • 0 關注
  • 101 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號