私はcakephpの初心者です。テーブル自体を参照する外部キーを持つ InnoDB テーブル CompetitionRegions を使用して、mysql データベースを設計しました。外部キー制約が設定されています。
自己結合テーブルのエイリアスが最初のエイリアスと同じであるため、cake bake はこのための適切なコードを自動的に生成できませんでした。
SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1066 一意でないテーブル/エイリアス: 'CompetitionRegions'
SELECT CompetitionRegions.id AS `CompetitionRegions__id`, CompetitionRegions.name AS `CompetitionRegions__name`, CompetitionRegions.parent_competition_region_id AS `CompetitionRegions__parent_competition_region_id` FROM competition_regions CompetitionRegions LEFT JOIN competition_regions CompetitionRegions ON CompetitionRegions.id = (CompetitionRegions.parent_competition_region_id) LIMIT 20 OFFSET 0
これを解決するにはどうすればよいですか?
class CompetitionRegionsTable::initialize には以下が含まれます:
$this->belongsTo('CompetitionRegions', [
'foreignKey' => 'parent_competition_region_id'
]);
自己結合サブクエリに使用するエイリアスを指定する方法はありますか?