表結構如下:
使用者- users: id,
回覆- replies: id, user_id, parent_id,
parent_id 是這條回覆所回覆的回覆物件的id。
user_id 是這條回覆的使用者id。
現在想取得id為1的使用者所有給他的回覆所有回覆。這樣就構成了遠端一對多的關係。
User中:
public function receivedReplies()
{
return $this->hasManyThrough(Reply::class, Reply::class, 'user_id', 'parent_id');
}
遠端一對多的關係定義沒有問題。但是,遠端一對多中中間表和關聯表一樣,生成sql語句中的jion沒有重新命名錶,導致兩個同表名衝突。報的錯誤如下:
SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'replies' (SQL: select count(*) as aggregate from `replies` inner join `replies` on `replies`.`id` = `replies`.`parent_id` where `replies`.`user_id` = 1 and `user_id` <> 1)
請問這種問題有好的解決辦法嗎?