Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: профиль
Форумы портала PHP.SU » » CMS и фреймворки » профиль

Страниц (1): [1]
 

1. jessie - 19 Января, 2019 - 11:48:26 - перейти к сообщению
Доброго времени,
есть сайт на Yii2, профиль я уже сделал и кликабельную картинку на форуме тоже ,
сейчас задача сделать просмотр профиля пользователя после нажатия на картинку другим user.
Я понимая для многих покажется глупый вопрос,но всё же -
можете объястнить как это лучше реализовать,
или где можно посмотреть примеры.
спасибо.
2. LIME - 20 Января, 2019 - 09:55:02 - перейти к сообщению
Вопрос непонятна
Можно рассказать про сериализацию
То есть перемещение точки принятия решения вверх
И локализация решения
Но... Явно рано
В чем вопрос? Проблема шаблон данными наполнить?
(Добавление)

299 очень красиво смотриться...Не меняйте плз)
3. jessie - 20 Января, 2019 - 19:06:56 - перейти к сообщению
LIME пишет:
Вопрос непонятна
Можно рассказать про сериализацию
То есть перемещение точки принятия решения вверх
И локализация решения
Но... Явно рано
В чем вопрос? Проблема шаблон данными наполнить?
(Добавление)

299 очень красиво смотриться...Не меняйте плз)


что бы при нажатии на логин на форуме пользователь поподал в профиль другого user как на этом сайте ,профиль уже готов- но его просмотреть и редактировать можно только с админа.
мне нужно писать для юзьверей новую страницу профиля? .Или можно как то использовать уже готовый профиль но при этом по требуется отменить право на редактирование. вот тут запутался.
(Добавление)
jessie пишет:
LIME пишет:
Вопрос непонятна
Можно рассказать про сериализацию
То есть перемещение точки принятия решения вверх
И локализация решения
Но... Явно рано
В чем вопрос? Проблема шаблон данными наполнить?
(Добавление)

299 очень красиво смотриться...Не меняйте плз)


мой вопрос был
что бы при нажатии на логин на форуме пользователь поподал в профиль другого user как на этом сайте ,профиль уже готов- но его просмотреть и редактировать можно только с админа.
мне нужно писать для юзьверей новую страницу профиля? .Или можно как то использовать уже готовый профиль но при этом по требуется отменить право на редактирование. вот тут запутался.


на даный момент вытягиваю уже вытягиваю даные так-
PHP:
скопировать код в буфер обмена
  1. <?PHP echo Yii::$app->user->identity->profile->website; ?>

но,я получаю данные только одного залогиненого пользователя с которого зашёл на сайт.


без identity

PHP:
скопировать код в буфер обмена
  1. <?PHP echo Yii::$app->user->profile->location; ?>


выдаёт ошибку Получение неизвестного свойства: yii \ web \ User :: profile

модель
PHP:
скопировать код в буфер обмена
  1.  
  2.     public function getProfile()
  3.  
  4.     {
  5.         return $this->hasOne(Profile::className(), ['user_id' => 'id']);
  6.     }

как это исправить сделать проверку или запрос по id что бы данные у каждого были разные?
уже по разному пробовал.
4. andrewkard - 23 Января, 2019 - 17:40:43 - перейти к сообщению
jessie
jessie пишет:
что бы при нажатии на логин на форуме пользователь поподал в профиль другого user как на этом сайте ,профиль уже готов- но его просмотреть и редактировать можно только с админа.
мне нужно писать для юзьверей новую страницу профиля?


UserController

actionView($id){

}

<a href="/user/view/<?=$user_id?>"><?=$user_name?></a>
5. Pimpys - 04 Мая, 2020 - 02:51:05 - перейти к сообщению
jessie пишет:
на даный момент вытягиваю уже вытягиваю даные так-
PHP:
скопировать код в буфер обмена
<?PHP echo Yii::$app->user->identity->profile->website; ?>

но,я получаю данные только одного залогиненого пользователя с которого зашёл на сайт.


Я понимаю, что тема стара как мамонт, но так захотелось ответить, вдруг кому пригодится Улыбка

Дело в том, что "Yii::$app->user->identity" содержит либо null, если не была выполнена авторизация либо содержит объект(identityClass) реализующий IdentityInterface а в него всегда будет попадать тот пользователь, под которым "ВЫ" зашли!

Для того, чтоб получить другого пользователя, надо сделать запрос через ActiveRecord, например так:

PHP:
скопировать код в буфер обмена
  1. class SystemOrdersRecord extends ActiveRecord
  2. {
  3. protected function getUser(): SystemUsersRecord
  4.     {
  5.         return SystemUsersRecord::findOne($this->user_id);
  6.     }
  7.  
  8.     public function getUserLink(): string
  9.     {
  10.         return Html::a(
  11.             '<span class="label label-success">'.$this->getUser()->username.'</span>',
  12.             ['/admin/users/view', 'id' => $this->getUser()->id]
  13.         );
  14.     }
  15. }

В @property int $user_id

Содержится $id user'a который сделал запись в базу. Заказ, пост, комментарий. Фантазия ваша.
PHP:
скопировать код в буфер обмена
  1. /* @var $this yii\web\View */
  2. /* @var $model app\models\orders\SystemOrdersRecord */
  3.  [
  4.         'attribute' => 'customer_name',
  5.         'format' => 'html',
  6.         'value' => $model->getUserLink()
  7.  ]

 

Powered by ExBB FM 1.0 RC1