У меня есть приложение Laravel, которое я использую как API для гораздо большего приложения, встроенного в Joomla. Мне очень нравится использовать Laravel и решил использовать Eloquent в приложении Joomla. Я получил эту работу за счет импорта bootstrap\autoload.php
файл в приложении Laravel и создание Capsule
Использование Laravel Фасады за пределами Laravel
require JPATH_ROOT.'/../laravel_app/bootstrap/autoload.php';
$capsule = new Capsule();
$config = new JConfig();
$capsule->addConnection([
'driver' => 'mysql',
'host' => $config->host,
'database' => $config->db,
'username' => $config->user,
'password' => $config->password,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => $config->dbprefix,
'strict' => false
]);
$capsule->setAsGlobal();
$capsule->bootEloquent();
Это прекрасно работает, и я могу использовать красноречив. Он напрямую загружает модели Eloquent из приложения.
Что я хочу знать, так это то, как я получаю остальную часть приложения Laravel, работающую внутри моего приложения Joomla, включая использование Facades
.
Например, у меня есть Config.get('key')
в одной из моделей Eloquent, отлично работает при вызове в Laravel, но вызывается и вызывается при вызове в Joomla.
Fatal error: Class 'Config' not found in laravel_app/app/Model.php on line 192
Я не знаю, как вы можете заставить его работать, но глядя на сообщение об ошибке, которое вы забыли: '' 'использовать Congif;' '' для импорта! Пожалуйста, сделайте это первым, а затем уточните, что вы задаете вопрос с этой информацией. – ArjanSchouten
Как упоминалось, он работает в Laravel, поэтому «use Config;» не был забыт. 'Config' - это Facade, поэтому, даже если я импортировал целевой класс в Joomla, я все еще не мог использовать его как Facade – Wasim
Прошу прощения, что я ошибся в вашем сообщении об ошибке. Думал, что это была ошибка об пространствах имен. – ArjanSchouten