Reputation: 1
Error: admin\models\DormitoryFloorModel has no relation named "dormitory_model"
.
I use postgresql db.
Controller action:
public function actionIndex() {
$searchModel = new DormitoryFloorModelSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
DormitoryFloorModel:
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']);
}
DormitoryModel:
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']);
}
Trying to joinWith in DormitoryFloorModelSearch:
$query = DormitoryFloorModel::find();
$query->joinWith(DormitoryModel::tableName());
I would be extremely grateful for your help.
UPD: Tried to use table definition in model without pgsql schema, but it doesn't work.
Example:
'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'
]
],
],
So I've changed to:
public static function tableName()
{
return 'dormitories_usage.dormitory_floor_model';
}
both models.
Upvotes: 0
Views: 33