Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 17.06.2018 17:38:08

Модели с использованием второй БД в связке с laravel-medilibrary

Использована библиотека:
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)

Получается он пытается искать в другой(в той, что указана у модели) БД таблицы от медиабиблиотеки...

Теперь вопрос:
Как заставить его смотерть в "ту" БД ? Т.е. в БД прописанную по-умолчанию...

Не в сети

#2 17.06.2018 23:17:09

AlexForever
Откуда: Кишинев
Сообщений: 31

Re: Модели с использованием второй БД в связке с laravel-medilibrary

Можете использовать метод setConnection.

   $firms = new Firms();
   $firms->setConnection('база данных по умолчанию');
   $newsItem = $firms->first();
   $mediaItems = $newsItem->getMedia();

Не в сети

#3 27.01.2020 22:56:59

Re: Модели с использованием второй БД в связке с laravel-medilibrary

Извиняюсь...задал вопрос и забыл...
Так же и решил.
Давно было...тему можно закрыть.
Плюс в карму отправил...хоть и поздновато)

Не в сети

Подвал раздела