Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Использована библиотека:
https://github.com/spatie/laravel-medialibrary
Есть модель с подключением к дургой(!) БД:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
use Spatie\MediaLibrary\HasMedia\HasMedia;
class Firms extends Model implements HasMedia
{
use HasMediaTrait;
protected $connection = 'mysql_data2'; // !!!
protected $table = 'firms';
}
Так вот...при сипользовании такого кода:
<?php
$newsItem = Firms::first();
$mediaItems = $newsItem->getMedia();
dd($mediaItems);
Получаю такую ошибку...
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'data2_data.media' doesn't exist (SQL: select * from `media` where `media`.`model_id` = 1505 and `media`.`model_id` is not null and `media`.`model_type` = App\Firms)
Получается он пытается искать в другой(в той, что указана у модели) БД таблицы от медиабиблиотеки...
Теперь вопрос:
Как заставить его смотерть в "ту" БД ? Т.е. в БД прописанную по-умолчанию...
Не в сети
Можете использовать метод setConnection.
$firms = new Firms();
$firms->setConnection('база данных по умолчанию');
$newsItem = $firms->first();
$mediaItems = $newsItem->getMedia();
Не в сети
Извиняюсь...задал вопрос и забыл...
Так же и решил.
Давно было...тему можно закрыть.
Плюс в карму отправил...хоть и поздновато)
Не в сети