1
比方說,我有2個模型的用戶和位置。還有,讓我做這件事的模型之間的定義關係:執行搜索導航Kohana中的2個模型之間的關係
$user->location->name;
我不知道這是否是可能的,但我可以執行使用類似搜索:
$user->location->where('name', '=', 'Paris')->find();
返回我其位置被命名爲巴黎的用戶?
比方說,我有2個模型的用戶和位置。還有,讓我做這件事的模型之間的定義關係:執行搜索導航Kohana中的2個模型之間的關係
$user->location->name;
我不知道這是否是可能的,但我可以執行使用類似搜索:
$user->location->where('name', '=', 'Paris')->find();
返回我其位置被命名爲巴黎的用戶?
總之你可以。這是爲什麼。
當您調用find
方法時,ORM會遍歷所有待添加到查詢中的待處理屬性,並添加它們並執行查詢。在你的例子中,你有兩個未決的規則被添加到你的查詢中。您明確定義的第一個 - where('name', '=', 'Paris')
,第二個隱藏在關係$user->location
中。
當您從關係中調用ORM屬性時,它實際上會返回未加載關係中定義的ORM對象,但其對象中具有待處理的where
子句和join
。因此,當最後調用find
方法時,您將在位置對象上調用它,其中有兩個where
子句和一個join
。
是的,你可以... – 2011-12-20 20:32:16