Здравствуйте.
Таблица пользователей users
хранится в базе данных U
, таблица магазинов shops
- в дефолтной базе данных. Обе базы расположены на одном сервере.
Пользователь и магазин связаны отношением:
<?php namespace RainLab\User\Models;
class User extends UserBase
{
protected $table = 'users';
protected $connection = 'U';
public $hasMany = [
'shops' => [
'DontFollow\Plugin\Models\Shop',
'delete' => true
]
];
// ...
}
<?php namespace DontFollow\Plugin\Models;
use Model;
class Shop extends Model
{
public $table = 'shops';
protected $connection = 'mysql';
public $belongsTo = [
'user' => [
'RainLab\User\Models\User'
]
];
// ...
}
При попытке создать магазин c привязкой к нему пользователя:
$shop = new Shop;
// ...
$shop->user()->add($this->user);
$shop->save();
Получаю следующую ошибку:
SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘mysql.users’ doesn’t exist (SQL: select count(*) as aggregate from ‘users’ where ‘id’ = 18)
Почему-то система пытается в момент создания магазина найти таблицу users
в базе данных mysql
, хотя в модели User
указано соединение U
. Пожалуйста, помогите понять логику работы октября и решить проблему)
Исходный код ошибки представлен здесь: