Я использую базу данных postgresql.Действие контроллера:
Код: Выделить всё
public function actionIndex() {
$searchModel = new DormitoryFloorModelSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
Код: Выделить всё
public static function tableName()
{
return 'dormitory_floor_model';
}
public static function getDb()
{
return Yii::$app->get('dormitory');
}
public function getDormitoryModel()
{
return $this->hasOne(DormitoryModel::className(), ['id' => 'model_id']);
}
Код: Выделить всё
public static function tableName()
{
return 'dormitory_model';
}
public static function getDb()
{
return Yii::$app->get('dormitory');
}
public function getDormitoryFloorModels()
{
return $this->hasMany(DormitoryFloorModel::className(), ['model_id' => 'id']);
}
Код: Выделить всё
$query = DormitoryFloorModel::find();
$query->joinWith(DormitoryModel::tableName());
UPD:
Пытался использовать определение таблицы в модели без схемы pgsql, но это не работает.
Пример:
Код: Выделить всё
'dormitory' => [
'class' => 'yii\db\Connection',
'dsn' => 'pgsql:host=localhost;port=5432;dbname=postgres',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8',
'schemaMap' => [
'pgsql'=> [
'class'=>'yii\db\pgsql\Schema',
'defaultSchema' => 'dormitories_usage'
]
],
],
Код: Выделить всё
public static function tableName()
{
return 'dormitories_usage.dormitory_floor_model';
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... tion-named