Задача следующая: сделать связь в модели с этой же самой моделью. Задачи такие могут быть, думаю никто сомневаться не станет.
В качестве самого быстрого примера который можете испробовать у себя приведу такую связь
Код: Выделить всё
public function getSame(){
return $this->hasOne(static::className(), [static::primaryKey()[0] => static::primaryKey()[0]]);
}
Код: Выделить всё
$Object = Category::find()->joinWith('same')->one();
Есть ли нормальные способы избежать этого? Под ненормальным способом я понимаю:Syntax error or access violation: 1066 Not unique table/alias: 'category'
The SQL being executed was: SELECT `category`.* FROM `category` LEFT JOIN `category` ON `category`.`category_id` = `category`.`category_id`
Код: Выделить всё
public function getSame(){
$relation = $this->hasOne(static::className(), [static::primaryKey()[0] => static::primaryKey()[0]]);
$relation->from(['u2' => static::tableName()]);
return $relation;
}