0
目前我在我的模型中有以下代碼完美的工作,但我很困惑,因爲我沒有在相關表中指定字段之前指定關係名稱。Yii2如何在相關表格中指定字段時不需要指定關係名稱?
這是怎麼回事?
下面的代碼中使用Relarion的名字是:categoriesToPosts
搜索型號
$query = Posts::find();
$query->joinWith(['categoriesToPosts']);
if(!empty($params['cat'])){
$query->andFilterWhere(['posts_categories_id' => $params['cat']]);
}
我將有filterwhere部分的我喝了內認爲有以下:
['categoriesToPosts.posts_categories_id' => $params['cat']]
如果該posts_categories_id字段名是在查詢的唯一,我的意思是不是ambigous,那麼在這種情況下,SQL引擎本身解析正確的名字.. – scaisEdge
@scaisEdge所以你說,如果我在兩個表中都有一個同名的字段,那麼我必須指定關係? –
是的,在這種情況下,如果您沒有在andFilterWhere子句中指定表名稱(不是關係名稱),則會出現ambiguos列的錯誤。 – scaisEdge