Загрузка всего приложения 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();

Смотрите эту статью для решения, которое помогло мне

Другие вопросы по тегам