Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Как обновить устаревшее мобильное приложение и не утонуть в легаси
Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

dev400

  • 69
    вклад
  • 302
    вопроса
  • 161
    ответ
  • 25%
    решений
Комментарии
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Странный код в Nav yii2, как можно сделать альтернативно?

    dev400 @dev400 Автор вопроса
    Евгений Вольф: )))
    Написано более трёх лет назад
  • Странный код в Nav yii2, как можно сделать альтернативно?

    dev400 @dev400 Автор вопроса
    Евгений Вольф: не понял про букву т)))
    Написано более трёх лет назад
  • Можно ли подключить таким способом валидатор?

    dev400 @dev400 Автор вопроса
    да, наверно лучший вариант, но тогда в каждой нужной модели-прослойке нужно будет делать так

    ['phone', 'filter', 'filter' => function($value) {
        return str_replace(['+7', '(', ')' , ' '], '', $value);
    }]

    А хотелось бы достичь минимальной повторяемости кода.
    Написано более трёх лет назад
  • Можно ли подключить таким способом валидатор?

    dev400 @dev400 Автор вопроса
    но есть же встроенный валидатор trim, который ничего не проверяет
    Написано более трёх лет назад
  • Как правильно валидировать уникальное поле?

    dev400 @dev400 Автор вопроса
    Максим Федоров: в общем то сделал так
    public function validatePhone($attribute, $params)
        {
    
            $this->$attribute = str_replace(['+7', '(', ')' , ' '], '', $this->$attribute);
    
        }


    Не знаю как со стороны лучших практик, но работает
    Написано более трёх лет назад
  • Как правильно валидировать уникальное поле?

    dev400 @dev400 Автор вопроса
    Максим Федоров: либо декорирую beforeValidate()
    public function beforeValidate()
        {
           parent::beforeValidate();
            ////
        }
    Написано более трёх лет назад
  • Как правильно валидировать уникальное поле?

    dev400 @dev400 Автор вопроса
    Максим Федоров: да, попробую по примеру в ответе davidnum95
    Написано более трёх лет назад
  • Как правильно валидировать уникальное поле?

    dev400 @dev400 Автор вопроса
    Максим Федоров: да. Но тогда нужно как то до отправки в модель сделать из +7 (909) 777 77 77 это 79097777777
    Написано более трёх лет назад
  • Как правильно валидировать уникальное поле?

    dev400 @dev400 Автор вопроса
    Максим Федоров: +7 (909) 777 77 77. Проблема кажется локализована, дело в $user->phone = str_replace(['+', '(', ')' , ' '], '', $this->phone);
    Написано более трёх лет назад
  • Как правильно валидировать уникальное поле?

    dev400 @dev400 Автор вопроса
    Максим Федоров: кажется я кое что понял... Спасибо
    Написано более трёх лет назад
  • Как правильно валидировать уникальное поле?

    dev400 @dev400 Автор вопроса
    Максим Федоров: неа
    <?php
    namespace app\models;
    
    use app\components\NewUserEvent;
    use app\components\Notifications;
    use yii\base\Model;
    use app\models\User;
    
    /**
     * Signup form
     */
    class Register extends Model {
    
        const EVENT_NEW_USER = 'new-user';
    
        public $username;
        public $email;
        public $phone;
        public $password;
        public $password_repeat;
        public $verifyCode;
    
    
        /**
         * @inheritdoc
         */
        public function rules()
        {
    
            return [
    
                ['phone', 'trim'],
                ['phone', 'required'],
                ['phone', 'string', 'min' => 10],
                ['phone', 'unique', 'targetClass' => '\app\models\User', 'message' => 'Телефон занят'],
    
                ['username', 'trim'],
                ['username', 'required'],
                ['username', 'unique', 'targetClass' => '\app\models\User', 'message' => 'Логин занят'],
                ['username', 'string', 'min' => 2, 'max' => 255],
    
                ['email', 'trim'],
                ['email', 'required'],
                ['email', 'email'],
                ['email', 'string', 'max' => 255],
                ['email', 'unique', 'targetClass' => '\app\models\User', 'message' => 'Email адрес занят'],
    
                ['password', 'required'],
                ['password_repeat', 'required'],
                ['password', 'string', 'min' => 6],
                ['password_repeat', 'compare', 'compareAttribute' => 'password'],
    
    
    
                ['verifyCode', 'captcha', 'message' => 'Код введен неверно'],
    
            ];
    
        }
    
    
        /**
         * @param \app\models\User $user
         * @param NewUserEvent $event
         * @return \app\models\User|null
         */
        public function register( User $user, NewUserEvent $event)
        {
    
            if ( !$this->validate() ) {
    
                return null;
    
            }
    
            $user->username = $this->username;
            $user->email = $this->email;
            $user->phone = str_replace(['+', '(', ')' , ' '], '', $this->phone);
            $user->setPassword($this->password);
            $user->generateAuthKey();
    
            if( $user->save() ) {
    
                $event->username = $user->username;
                $event->phone =  $user->phone;
                $event->email = $user->email;
                $event->password = $this->password;
    
                $this->trigger(self::EVENT_NEW_USER, $event);
    
                return $user;
    
            }
    
            return null;
    
        }
    
    }
    Написано более трёх лет назад
  • Как правильно валидировать уникальное поле?

    dev400 @dev400 Автор вопроса
    формат у них один. Пытаюсь записать номер который уже есть в базе, и получаю исключение SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '79097777777' for key 'user_phone_uindex', вместо сообщения которое я задал в правилах
    Написано более трёх лет назад
  • Как правильно валидировать уникальное поле?

    dev400 @dev400 Автор вопроса
    да, идея хорошая. Но почему может не работать стандартный?
    Написано более трёх лет назад
  • Является ли хорошей практикой неявная зависимость без наследования с целью избавиться от дублирования инстансов?

    dev400 @dev400
    diamond: до ларавел пока не дошел, начал изучать фреймворки с yii2. обязательно попробую этот автовайринг подключить
    Написано более трёх лет назад
  • Является ли хорошей практикой неявная зависимость без наследования с целью избавиться от дублирования инстансов?

    dev400 @dev400
    diamond: да, php по другому не умеет :)
    Написано более трёх лет назад
  • Является ли хорошей практикой неявная зависимость без наследования с целью избавиться от дублирования инстансов?

    dev400 @dev400
    diamond: в @Dependencies можно сменить класс на любой, который имплементирует интерфейс, который ожидается в аргумертах
    Написано более трёх лет назад
  • Является ли хорошей практикой неявная зависимость без наследования с целью избавиться от дублирования инстансов?

    dev400 @dev400
    diamond: как эта штука будет работать с интерфейсами?
    Написано более трёх лет назад
  • Что делать если project manager идет на поводу в клиента?

    dev400 @dev400
    300$ за 10 часовой рабочий день?
    Написано более трёх лет назад
  • Как на yii2 реализовать динамический пункт меню?

    dev400 @dev400 Автор вопроса
    Дмитрий Ким: большое спасибо, теперь понимаю как это работает.
    Написано более трёх лет назад
  • Как на yii2 реализовать динамический пункт меню?

    dev400 @dev400 Автор вопроса
    Это для неавторизованных тоже работать будет? Не понимаю как достать роль у гостя
    Написано более трёх лет назад
  • ← Предыдущие
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • wppanda5
    WP Panda
    • 8 ответов
    • 0 вопросов
  • tyllo
    tyllo
    • 7 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 7 ответов
    • 0 вопросов
  • sergey-gornostaev
    Сергей Горностаев
    • 7 ответов
    • 0 вопросов
  • Sanes
    Sanes
    • 6 ответов
    • 0 вопросов
  • Drno
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации