Laravel 5.2 и класс Ratchet не найдены

Я использую Ratchet для веб-сокетов. Это работает в целом, но я хочу использовать внутри моего ExampleController Laravels Auth, Это должно быть легко, но это не работает:

<?php namespace Annotation\Http\Controllers;
use Auth;
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;

class ExampleController extends Controller implements MessageComponentInterface {

public function onOpen(ConnectionInterface $conn) {
echo Auth::id();

//etc.
echo "New Connection! ({$conn->resourceId})";
}

}

Я всегда получаю класс Auth исключение не найдено, когда я запускаю свой контроллер в файле websocket-server.php (находится в корневом каталоге laravel) ниже:

<?php
require __DIR__.'/vendor/autoload.php';

use Ratchet\Server\IoServer;
use Annotation\Http\Controllers\CollaborativeController;

$server = IoServer::factory(
new ExampleController(),
8080
);
$server->run();

Если я использую свой ExampleController как обычный контроллер с маршрутом, будет найден класс Auth. (Я также не могу использовать помощник по аутентификации или что-либо, связанное с laravel)

Почему это происходит? Поскольку Laravel еще не инициализирован или мне нужно добавить путь?

0

Решение

Функция auth возвращает экземпляр аутентификатора. Вы можете использовать его вместо фасада Auth для удобства:

echo auth()->user()->id;
0

Другие решения

Добавьте следующие строки в ваш server.php, если вы хотите загрузить промежуточное ПО.
Auth — это промежуточное ПО, и оно не инициализировано и не загружено.


require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php'; (set a proper path to your bootstrap)

0

По вопросам рекламы [email protected]