Загрузка всего приложения Laravel5 извне
Я пытаюсь загрузить все приложение L5 из внешнего сценария php. Мне нужно получить доступ к моделям и фасадам Eloquent. Например, у меня есть два установленных и работающих приложения в отдельных папках:
- / Var / WWW / drupal7
- / Var / WWW /drupal7/ Laravel
мой конфиг nginx vhost:
location /laravel {
root /var/www/drupal7/laravel/public;
index index.php;
try_files $uri $uri/ /laravel/public/index.php?$query_string;
}
мой /var/www/drupal7/laravel/routes/web.php
Route::get('/laravel', function () {
return 'Laravel';
});
Оба приложения работают нормально, но мне нужно загрузить приложение laravel из внешнего скрипта, и я хочу получить доступ к моделям, представлениям, конфигурациям. У меня вопрос - как я могу сделать это правильно?
Я пытался добиться этого, используя следующий код:
<?php
require '/var/www/drupal7/laravel/bootstrap/autoload.php';
$app = new Illuminate\Foundation\Application(
'/var/www/drupal7/laravel/'
);
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Console\Kernel::class,
App\Console\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
App\Exceptions\Handler::class
);
use App\User;
$user = User::find(1);
var_dump($user);
но я получаю следующее сообщение об ошибке:
Error: Call to a member function connection() on null in Illuminate\Database\Eloquent\Model::resolveConnection() (line 1013 of /var/www/drupal7/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php)
1 ответ
Попробуй это
<?php
// boot laravel
require __DIR__ .'/../../vendor/autoload.php';
$laravel_app = require __DIR__ .'/../../bootstrap/start.php';
$laravel_app->boot();