@Alcospb

Silex — почему не работают Traits?

Хочу "достать" username пользователя. В доке пишут:
Silex\Application\SecurityTrait adds the following shortcuts:
user: Returns the current user.
$user = $app->user();


Однако, добавление use Silex\Application\SecurityTrait в файл с контроллерами не дал желаемого эффекта.
$user = $app->user() выдает ошибку:
Fatal error: Call to undefined method Silex\Application::user() in


На сервере php 5.4.
Аналогичная проблема была с
use Application\UrlGeneratorTrait;
, но, на тот момент, не придал значения проблеме.

Why?
  • Вопрос задан
  • 3056 просмотров
Пригласить эксперта
Ответы на вопрос 2
А так работает?

$token = $app['security']->getToken();
if (null !== $token) {
    $user = $token->getUser();
}
Ответ написан
@d1mk0
class Application extends Silex\Application
{
    use Silex\Application\TwigTrait;
}
 
$app = new Application();
 
$app->register(new Silex\Provider\TwigServiceProvider(), array(
    'twig.path' => __DIR__ . '/../views',
));
 
$app->get('/', function () use ($app) {
    return $app->render('home.twig');
});
 
$app->run();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы