Почему капсула в eloqent требует метода setAsglobal () в slim

rsd123 спросил: 13 июня 2018 в 03:32 в: php

Почему для экземпляра капсулы требуется setAsglobal() метод в slim capsule->setAsglobal();?

См. Https://github.com/illuminate/database


1 ответ

wp78de ответил: 14 июня 2018 в 08:16

В самом деле, состояние инструкций по настройке является необязательным, см. заголовок / базу данных:

// Make this Capsule instance available globally via static methods...
(optional) $capsule->setAsGlobal();

Однако вам нужно установить Connection as Global , поэтому вы можете получить доступ в любом месте кода Slim.

Поскольку вы обычно получаете доступ к Capsule с помощью Illuminate\Database\Capsule\Manager или как DB Facade (например, use Illuminate\Database\Capsule\Manager as DB;)

$result = \Illuminate\Database\Capsule\Manager::select('select * from users');

вам нужно установить его как глобальный (как показано в кулинарной книге Slim v3).

В противном случае вы можете попробовать сделать DB работать в пределах области, где капсула фактически создается через диспетчер соединений (или воссоздавать / повторно подключаться к тем же настройкам), когда это необходимо.

Дополнительное видео по вопросу: Почему капсула в eloqent требует метода setAsglobal () в slim

PHP шаблонизатор Twig

Authentication with Slim 3: Views with Twig (2/29)

Tutoriel PHP/Twig : Moteur de template Twig