3
在 「門票」 的模式:Yii2不是唯一的表/別名: '用戶'
public function getUser()
{
return $this->hasOne(User::className(), ['id' => 'user_id']);
}
public function getSupervisor()
{
return $this->hasOne(User::className(), ['id' => 'supervisor_id']);
在 「TicketSearch」 模式:
$query->joinWith(['user','supervisor']);
$query
->andFilterWhere(['like', 'user.surname', $this->user_id])
->andFilterWhere(['like', 'user.surname', $this->supervisor_id]
如果我嘗試搜索主管,得到這個錯誤:
Not unique table/alias: 'user'
The SQL being executed was: SELECT COUNT(*) FROM `ticket` LEFT JOIN `user` ON `ticket`.`user_id` = `user`.`id` LEFT JOIN `user` ON `ticket`.`supervisor_id` = `user`.`id` WHERE `user`.`surname` LIKE '%surname4%'
我曾試圖改變名稱的用戶表:
public function getSupervisor()
{
return $this->hasOne(User::className(), ['id' => 'supervisor_id'])
->from(User::tableName() . 'u2');
}
但這個錯誤返回:
You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near 'u2.`id`
WHERE `supervisor`.`surname` LIKE '%surname4%'' at line 1 The SQL being executed was:
SELECT COUNT(*) FROM `ticket` LEFT JOIN `user` ON `ticket`.`user_id` = `user`.`id` LEFT JOIN `user`u2 ON
`ticket`.`supervisor_id` = `user`u2.`id` WHERE `supervisor`.`surname` LIKE '%surname4%'
對不起,我可以將答案標記爲已接受嗎?我必須這樣編輯標題問題:「[Accepted] Yii2不是唯一表/別名:'user'」 – 2015-02-01 09:13:43
只需選中答案旁邊的複選框(在左側,在櫃檯下)。 – arogachev 2015-02-01 10:54:27