Для вывода логина или других данных в базовый шаблон в Symfony 3.4 есть несколько способов.
Первый способ - использование Twig функции. Twig - это шаблонизатор, который используется в Symfony по умолчанию. В базовом шаблоне вам нужно включить следующий код:
Welcome, {{ app.user.username }}!
Здесь app.user.username
предполагает, что вы использовали систему аутентификации Symfony, и пользователь был аутентифицирован. Если пользователь не был аутентифицирован, будет возвращено значение null
.
Второй способ, который также использует Twig, - это расширить базовый контроллер и добавить необходимые переменные в контекст всех view-объектов. Вот пример:
use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentSecurityCoreUserUserInterface; class BaseController extends AbstractController { /** * @var UserInterface|null */ protected $user; /** * @param UserInterface|null $user */ public function __construct(UserInterface $user = null) { $this->user = $user; } /** * @return SymfonyComponentHttpFoundationResponse */ public function render(string $view, array $parameters = array(), Response $response = null) { $parameters['user'] = $this->user; return parent::render($view, $parameters, $response); } }
Теперь вы можете наследовать этот базовый контроллер в своих контроллерах и передавать необходимые данные, такие как логин, в шаблон:
class UserController extends BaseController { public function indexAction() { $user = $this->getUser(); // Получаем данные текущего пользователя return $this->render('user/index.html.twig', [ 'user' => $user, ]); } }
В шаблоне user/index.html.twig
вы можете использовать переданные данные, например:
Welcome, {{ user.username }}!
Это два основных способа, которые вы можете использовать, чтобы вывести логин или другие данные в базовый шаблон в Symfony 3.4. Оба способа являются надежными и легко настраиваемыми в зависимости от ваших потребностей.