Loading...
ypetrov avatar ypetrov 4 Точки

Как да изтегля от сесията user-а или някакъв идентификатор в symfony?

Пак ползвам security.yml конфигурацията за логин, логин формата ми е направена с билдъра, не е като в документацията, направих си и валиден логаут, работят добре, ма не мога да разбера от къде да си дръпна някакъв идентификатор като username или поне email?

Този токън и потребител в сесия ли се запаметяват или къде?

Тагове:
0
PHP Web Development 15/12/2016 03:19:27
b.yordanov avatar b.yordanov 146 Точки

в контролер го вземаш с $this->getUser(); в twig мисля беше {{app.user}}

в контролера може също и 

$user = $this->get('security.token_storage')->getToken()->getUser();

а с $this->get('security.token_storage')->getToken(); взимаш само токен-а 

0
15/12/2016 10:04:27
ypetrov avatar ypetrov 4 Точки

Първото решение снощи се опитах да го направя, но ме стана, ще опитам след малко с второто.

0
b.yordanov avatar b.yordanov 146 Точки

пусни и код да видим ако не стане, може там някъде да е грешката 

0
ypetrov avatar ypetrov 4 Точки

За да не говоря на празно това е от първия вариант който бях опитал вчера проблема:

An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Object of class Bundle\Entity\User could not be converted to string") - това е при {{ app.user }}

Същото е когато се добави $this->getUser(); в defaultcontroller.php някъде и се изтегли от променлива. Пробвах и втория ти вариант at the most very top преди всичко и пак не чатка. Не знам коя част от кода искаш за това ти слагам безобидната функция в която се намира:

    public function indexAction(Request $request)
    {
        return $this->render('default/index.html.twig', [
            'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
            'ver'      => $this->ver,
            'username'     => $this->get('security.token_storage')->getToken()->getUser(),
        ]);

    }

 

Като цяло грешката е една и съща и за това рекох да няма някакъв друг вариант, които да е очевиден, но не и за мен..

0
15/12/2016 10:39:25
b.yordanov avatar b.yordanov 146 Точки

$this->getUser() ти връща обект, затова имаш и тази грешка  Object of class Bundle\Entity\User could not be converted to string. От него трябва да извикаш ид-то $this->getUser()->getId(); същото важи и за twig {{app.user.id}} респектвно и за username

направи си един дъмп на app.user и ще видиш какво можеш да извикаш от него

0
15/12/2016 11:08:08
ypetrov avatar ypetrov 4 Точки

Би било логично да го направя като не знам какво точно връща а ме интересува... въпроса е защо не съм го направил до сега. Благодаря за подсказката. :)

0
b.yordanov avatar b.yordanov 146 Точки

Трябва да четеш повече логовете :) За да видиш какво има в даден обект (в твоя случай $this->getUser() ) използвай фунцията dump() на симфони вместо var_dump() и те така...

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.