В Laravel 5.8 я пытаюсь установить другое соединение для модели.
У меня настроено 2 подключения к базе данных в config/database.php
(mysql1
и mysql2
)
Сначала ясделал MyModel
класс:
namespace App\Models;
class MyModel
extends \Illuminate\Database\Eloquent\Model {
public static function sqlselect($sql) {
$result = DB::select(DB::raw($sql));
return $result;
}
}
Затем я создал новую модель, производную от этого класса, и установил соединение, которое он должен использовать:
namespace App\Models;
class FooModel extends \App\Models\MyModel {
protected $connection = 'mysql2';
}
Когда я пытаюсьиспользуйте это FooModel
, я ожидаю, что оно будет использовать соединение mysql2
, но это не так.
use App\Models\FooModel;
$sqlresult = FooModel::sqlselect('SELECT * FROM foo');
выдает ошибку, что таблица foo
отсутствует в базе данных, потому что она все ещепытается использовать соединение по умолчанию mysql1
.
Любой способ сделать это, сохраняя при этом все статическое?