Я пытаюсь установить полиморфную связь между двумя таблицами базы данных.
database1: SaleReport база данных2: ThreadConnection
в разделе SaleReport в базе данных1
public function relates(){
return $this->morphMany(ThreadConnection::class, 'relation');
}
на ThreadConnection в базе данных2
public function relation(){
return $this->morphTo();
}
Но когда я пытаюсь получить такое отношение, как
$salereport = App\SaleReport::find(1);
$salereport->relates
Illuminate/Database/QueryException with message 'SQLSTATE[42S02]:
Base table or view not found: 1146 Table 'database1.thread_connections'
doesn't exist (SQL: select * from `thread_connections` where
`thread_connections`.`relation_id` = 484694 and
`thread_connections`.`relation_id` is not null and
`thread_connections`.`relation_type` = App/SaleReport)'
Я также попытался определить подключение к базе данных в ThreadConnection
$ this-> setConnection ('database2') -> morphTo ();
Но это тоже не сработало!
Любое предложение будет оценено
Я думаю, здесь уже ответили, что вы ищете: stackoverflow.com/questions/25142968/…
Привет @koalaok, Спасибо, да, я сделал, что добавил защищенное соединение $ connection = 'db1 / db2' в обеих моделях, принадлежащих базам данных, и имена таблиц, защищенные $ table = 'table_names', и это сработало как шарм, это было действительно хорошо, что так легко установить связь между двумя базами данных с помощью полиморфных отношений.






Как указывалось ранее в моем комментарии,
Чтение ошибки:
Base table or view not found: 1146 Table 'database1.thread_connections'
Это означает, что Laravel ищет соединение с базой данных1 для модели ThreadConnection (база данных1 должна быть соединением по умолчанию, если модель относится к другому соединению, оно должно быть установлено явно)
Добавление в ThreadConnection:
protected $connection = 'database2';
Решим вопрос.
Вы пытались установить protected $ connection = 'database2'; в модели ThreadConnection?