Yii2-Start альтернативный шаблон для быстрого старта нового проекта.

Выкладываем свои наработки
Аватара пользователя
desc
Сообщения: 58
Зарегистрирован: 2014.02.27, 18:28

Re: Yii2-Start демо приложение.

Сообщение desc »

Подскажите пожалуйста, вот у вас в админке при выводе пользователей статус юзера выводится так

Код: Выделить всё

'value' => function ($model) {
                return $model->status;
            }, 
я делаю по вашей аналогии и у меня выводит id статуса, как так получается что у вас имя выводится, можно поподробнее?
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Yii2-Start демо приложение.

Сообщение vova07 »

У меня для этого заведён специальный геттер: https://github.com/vova07/yii2-start/bl ... t.php#L244
Сам статус у меня хранится в "status_id".
Аватара пользователя
desc
Сообщения: 58
Зарегистрирован: 2014.02.27, 18:28

Re: Yii2-Start демо приложение.

Сообщение desc »

вот он мой шанс понять что такое геттеры и сеттеры.
Я ведь все делал как у вас в коде, единственное отличие что в базе у меня поле статуса имеет имя status, а у вас status_id.
в модели

Код: Выделить всё

const STATUS_INACTIVE = 0;
    const STATUS_ACTIVE = 1;
    const STATUS_BANNED = 2;
    const STATUS_DELETED = 3;
    public $repassword;
    public $_status;
.......
public static function getStatusArray()
    {
        return [
            self::STATUS_ACTIVE => 'Активен',
            self::STATUS_INACTIVE => 'Неактивен',
            self::STATUS_BANNED => 'Забанен',
            self::STATUS_DELETED => 'Удален'
        ];
    }
    public function getStatus()
    {
        if ($this->_status === null) {
            $statuses = self::getStatusArray();
            $this->_status = $statuses[$this->status];
        }
        return $this->_status;
    }
в контроллере

Код: Выделить всё

 $statusArray = User::getStatusArray();

        return $this->render('index', [
            'dataProvider' => $dataProvider,
            'searchModel' => $searchModel,
            'statusArray' => $statusArray
        ]);
в вьюхе index.php

Код: Выделить всё

[
                'attribute' => 'status',
                'options' => array('width'=>'125px'),
                'value' => function ($model) {
                    return $model->status;
                },
                'filter' => Html::activeDropDownList($searchModel, 'status', $statusArray, ['class' => 'form-control', 'prompt' => 'Статус']),
            ],
подскажите что я забыл ?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2-Start демо приложение.

Сообщение zelenin »

геттер работает, если у объекта нет такого атрибута. У вас status есть, поэтому геттер не будет работать. В приложении же нет status, а есть status_id, поэтому при запросе status срабатывает геттер. У вас же status есть, поэтому отдается атрибут.
Аватара пользователя
desc
Сообщения: 58
Зарегистрирован: 2014.02.27, 18:28

Re: Yii2-Start демо приложение.

Сообщение desc »

спасибо, понял
SnnOz
Сообщения: 10
Зарегистрирован: 2013.12.31, 16:13

Re: Yii2-Start демо приложение.

Сообщение SnnOz »

Василий, спасибо за yii2-start
Это именно то что начинает делать каждый кто только приступает к изучению фреймворка.
Я только догадываюсь сколько бы программистов перешли на yii2 если бы такой каркас был из коробки + поэтапные уроки
Было б очень круто если бы написание такой штуки описалось поэтапно чтоб можна было бы самому делать и изучать одновременно.
Аватара пользователя
desc
Сообщения: 58
Зарегистрирован: 2014.02.27, 18:28

Re: Yii2-Start демо приложение.

Сообщение desc »

нет планов сделать auth0 через uLogin или логинзу?
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Yii2-Start демо приложение.

Сообщение vova07 »

SnnOz писал(а):Я только догадываюсь сколько бы программистов перешли на yii2 если бы такой каркас был из коробки + поэтапные уроки
Было б очень круто если бы написание такой штуки описалось поэтапно чтоб можна было бы самому делать и изучать одновременно.
На данный момент обновление каркаса заставляет себя ждать из-за нехватки времени. В ближайшем будущем возможны окна в выходные, тогда и попробую доделать начатое.
Касательно видео уроков: если честно диктор и учитель из меня не очень, + такое дело требует дополнительных временных затрат и подготовок. Ничего такого не обещаю, может попробую сделать тестовый урок для оценки, но не гарантирую.
desc писал(а):нет планов сделать auth0 через uLogin или логинзу?
OAuth в планах есть, будет как хоть чуток появится свободное время.
Аватара пользователя
Nill
Сообщения: 50
Зарегистрирован: 2014.07.04, 10:54

Re: Yii2-Start демо приложение.

Сообщение Nill »

Здравствуйте! Большое спасибо за ваш труд. Переключаюсь на yii2.
Установил как в инструкции, но вижу ошибку, когда пытаюсь попасть в backend, а именно:

Class 'yii\rbac\PhpManager' not found
in W:\home\demo2.loc\www\common\modules\users\modules\rbac\components\PhpManager.php at line 11


Подскажите, пожалуйста, из-за чего ошибка? Почему не видит "extends \yii\rbac\PhpManager"?
A.A.
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Yii2-Start демо приложение.

Сообщение vova07 »

Скоро проверю ошибку. Отпишусь.
Аватара пользователя
warwar.dp
Сообщения: 4
Зарегистрирован: 2014.07.04, 11:33

Re: Yii2-Start демо приложение.

Сообщение warwar.dp »

url: frontend/signup/ [post]
Ошибка: Class 'yii\helpers\Security' not found
скрин: http://joxi.ru/3me2U_3JTJBiPF-_i7c
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Yii2-Start демо приложение.

Сообщение lynicidn »

он теперь в базовом
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Yii2-Start демо приложение.

Сообщение vova07 »

warwar.dp писал(а):url: frontend/signup/ [post]
Ошибка: Class 'yii\helpers\Security' not found
скрин: http://joxi.ru/3me2U_3JTJBiPF-_i7c
Про баг знаю. Там нужно переписать чуток, так как клас перенесли в бэйс папку.
Аватара пользователя
Nill
Сообщения: 50
Зарегистрирован: 2014.07.04, 10:54

Re: Yii2-Start демо приложение.

Сообщение Nill »

Разобрался в одной проблеме, теперь другая... и вроде бы все правильно установил...

Declaration of common\modules\users\models\User::afterSave() should be compatible with yii\db\BaseActiveRecord::afterSave($insert, $changedAttributes)

Кто-нибудь знает в чем дело?
A.A.
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Yii2-Start демо приложение.

Сообщение anton44eg »

добавили второй аргумент в функцию. удобно стало, кстати
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Yii2-Start демо приложение.

Сообщение vova07 »

Да это из-за второго аргумента. На данный момент код уже не совместим с последней версией фрейма. Скоро исправлю.
SashaBorandi
Сообщения: 17
Зарегистрирован: 2009.09.05, 15:39

Re: Yii2-Start демо приложение.

Сообщение SashaBorandi »

Добрый день, уважаемые.

В общем к вопросу. Есть задача: Вывести ссылку, только всем старше ROLE_MODERATOR. Поставил условие:

Код: Выделить всё

if (Yii::$app->user->can(User::ROLE_MODERATOR))
В базе у пользователя role_id = 0

Но оно не работает, всегда выводит TRUE

Где и в чем может быть проблема?
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Yii2-Start демо приложение.

Сообщение lynicidn »

вы передаете число на проверку а надо роль
SashaBorandi
Сообщения: 17
Зарегистрирован: 2009.09.05, 15:39

Re: Yii2-Start демо приложение.

Сообщение SashaBorandi »

lynicidn писал(а):вы передаете число на проверку а надо роль
Я это понимаю.
Но в @common/modules/user/modules/rbac/data/rbac.php я не нашел соответствующей роли, кроме как роли которая там обозначается цифрой 3. Что соответствует константе User::ROLE_MODERATOR
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Yii2-Start демо приложение.

Сообщение lynicidn »

Хм, там и правда надо передавать цифру 3, судя по файлу описания ролей, не знаю, может поэтому и не работает :(
Ответить