Infinitiweb / code-conventions

MIT License
8 stars 3 forks source link

Нельзя self|static::tableName() #17

Open hello-omny opened 6 years ago

hello-omny commented 6 years ago

По поводу построителя запросов в yii и использования self|static::tableName()

Так делать нельзя! Во первых неудобно, а во вторых есть замечательные штуки как ALIAS таблицы.

Плохо:

$query = UserPayout::find()
  ->select(UserPayout::tableName().'.name');

$query = UserPayout::find()
  ->select(sprintf('%s.name', UserPayout::tableName()));

и все подобные вариации.

Хорошо:

$query = UserPayout::find()
  ->alias('up')
  ->select(['name' => 'up.name']);
hello-omny commented 5 years ago

Алиасы не работают при джоинах, будьте внимательны. Соответствующий ишью висит в репозитории Yii2.