yii中判斷一個關聯對象是否存在

例如一個ActiveRecord對象User,它的關聯對象有Contact。(這裏假設你的配置的relaction名爲contact)。 php

在查詢的時候時候,若是帶有with('contact')進行查詢,則返回的user對象,能夠直接user->contact取對象。但若是你沒有帶with('contact'),則,使用user->contact會報錯。 spa

若是你在使用user對象時,不肯定以前的查詢是否使用了with(好比你在寫一個通用的跟user有關的方法的時候),須要使用到contact對象時,爲了不報錯,則能夠加上一個判斷 code

if($user->hasRelate('contact')){
....//這裏是要讀取contact信息相關的代碼
}
注意:這裏不能用if(!empty(user->contact))這樣的判斷,由於 user->contact這句話已經試圖去執行關聯查詢了,即它已經認爲你已經帶了with關聯信息了。
相關文章
相關標籤/搜索