#php #symfony1 #doctrine #sfguard
#php #symfony1 #доктрина #sfguard
Вопрос:
Я работаю с symfony 1.4 и использую sfDoctrineGuardPlugin в качестве инструмента для аутентификации.
Я хочу получить идентификатор пользователя, чтобы сохранить его в моей таблице.
После небольшого исследования, я думаю, я должен использовать это выражение: getUser()->getGuardUser()->getId()
.
Что я ищу, так это как вложить это выражение для моей цели.
Комментарии:
1. Не могли бы вы подробнее остановиться на «вложить это выражение в мою цель»? Что именно вы хотите сделать?
2. «Что я ищу, так это как вложить это выражение в мою цель». Да, пожалуйста, уточните….
Ответ №1:
если пользователь аутентифицирован, да, вы можете использовать:
// inside an action
$id = $this->getUser()->getGuardUser()->getId();
// inside a template
$id = $sf_user->getGuardUser()->getId();
Если пользователь не аутентифицирован, это выдаст ошибку.
Комментарии:
1. это то, что я использую, та же инструкция, но то, что я ищу, — это как сохранить этот объект, который имеет $ id в качестве одного из свойств? это означает, что как я могу изменить свое действие, чтобы сделать это?
2. Можете ли вы объяснить, что вы подразумеваете под «одним из свойств»? С какими разными объектами вы имеете дело?
3. Я хочу скрыть это поле (id) из своей формы, и когда я нажимаю сохранить, оно должно быть сохранено автоматически. Итак, что я должен изменить в своем действии, чтобы сделать это, используя: $ id = $this-> getUser()-> getGuardUser()-> getId(); для объекта, который я пытаюсь сохранить
4. Честно говоря, я бы рекомендовал вам взглянуть на документацию для этого. В вашем вопросе больше одной части, а также несколько способов сделать это. Я рекомендую вам ознакомиться с руководством по Jobeet.
5. Руководство по Jobeet настолько огромно, у вас есть специальная ссылка для этого (когда именно)
Ответ №2:
Зависит от того, откуда вы вызываете.
Из «представления»:
echo $sf_user->getAttribute('user_id', null, 'sfGuardSecurityUser' );
echo $sf_user->getUsername();
От ‘controller’ (как упоминалось Томом выше):
echo $this->getUser()->getGuardUser()->getId();
echo $this->getUser()->getGuardUser()->getUsername();
(Первая строка — ‘id’, вторая — ‘username’)