Есть класс Installer с методом setupRoles:
public function setupRoles()
{
$administrator = new Role();
$administrator->name = 'Administrator';
$administrator->save();
$manager = new Role();
$manager->name = 'Manager';
$manager->save();
$customer = new Role();
$customer->name = 'Customer';
$customer->save();
}
Для управления ролями использую
Zizaco/entrust:
Вызываю так:
$this->loadSystemInstaller()->setupRoles();
public function loadSystemInstaller()
{
$this->bootFramework(); //запускаю Laravel
$installer = new ...\Installation\Installer();
return $installer;
}
Выбрасывает исключение:
Call to a member function connection() on null
Проверил - действительно $resolver == null. Сделал то же самое через роут:
Route::get('installation/roles', function() {
$installer = new ...\Installation\Installer();
$installer->setupRoles();
});
Работает! $resolver !== null. Пожалуйста, подскажите, в чем может быть проблема?
UPD: немного поковырял Laravel, $resolver это инстанс DatabaseManager'а, который задается в единственном месте - сервис-провайдере DatabaseServiceProvider в методе boot. В метод boot он попадает из IoC (если я правильно понимаю что это такое):
// Illuminate\Database\DatabaseServiceProvider
...
Model::setConnectionResolver($this->app['db']);
...