• Создание таблицы в Yii2?

    Maksclub
    @Maksclub
    maksfedorov.ru
    $this->createTable('test33', [
                'id_1' => $this->integer(11)->notNull(),
                'id_2' => $this->integer(11)->notNull(),
            ]);
    
    $this->addPrimaryKey('pk-ids', 'test33, ['id_1', 'id_2']);


    В данном случае также исключаются повторы совпадений, то есть пара id_1=55 и id_2=66 будет уникальной
    Ответ написан
    1 комментарий
  • Логика разделения frontend и backend на Yii2 advanced?

    ValentinSaik
    @ValentinSaik
    Backend-Developer
    Если тебе нужно будет работать с моделями / формами и на фронтенде и на бэкенде то помещай их в папку common/models, например модель Users с помощью которой ты выводишь список пользователей, она тебе будет нужна как в фронтенде так и в админке, ее следует поместить в коммон, если же ты пишешь например модель Comments которая будет выводить комментарии к определенному посту, но ты не будешь выводить комментарии в админке то помещай эту модель в папку frontend/models, удобнее будет подключить ( use app/models/Comments; ) если же тебе надо вывести какую то статистику только в админке то создавай модели в папке backend/models.
    Но ничего страшного не случится если ты модель создашь не в той папке, просто надо будет менять путь подключения в нейсмпейсе. А вот с контроллерами тут по другому, их ты создаешь только в нужном приложении, если создаешь контроллер StatisticsController который будет выводить какую то статистику то помещать его надо именно в бэкенд, потому что заходить на него ты будешь из админки, если же ты хочешь что бы он был доступен и из админки и из фронтенда - создай 2 контроллера. Надеюсь все понятно изложил
    Ответ написан
    2 комментария
  • Как вызвать свой класс в Slim Framework?

    delphinpro
    @delphinpro
    frontend developer
    Так вы класс или функцию подключаете?
    Может просто new забыли?
    Ответ написан
    2 комментария
  • Можно ли узнать детили 404 ошибки в Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Для этого и есть debug панель, которая в yii2 просто замечательная. Просто включите ее и смотрите все это инфо и даже больше.
    www.yiiframework.com/doc-2.0/yii-debug-module.html
    в конфиге:
    'bootstrap' => ['log','debug'],
        'modules' => [
            'debug' => [
                'class' => 'yii\debug\Module',
                'allowedIPs' => ['тутВашIP'] //на локалке можно просто удалить эту строку
            ],
        ]
    Ответ написан
    2 комментария
  • Как в Yii2 не падать с ошибкой при повторе в БД?

    gobananas
    @gobananas
    finishhim.ru
    Если try/catch юзать то от Yii2
    try {
        //...
    }
    catch (\yii\db\Exception $exception) {
        //...
    }
    Ответ написан
    Комментировать
  • Как в Yii2 не падать с ошибкой при повторе в БД?

    slo_nik
    @slo_nik Куратор тега Yii
    Добрый вечер.
    Уберите первое сохранение в базу $phone ->save();

    P.S.
    Хочу добится что бы если пользователь по ошибке или специально ввёл одинаковые данные приложение не упало, а корректно сказало ему "извините такая запись уже есть" и всё.


    Для этого, в yii2, существует валидация.
    В данном случае Вам подойдёт вот этот встроенный валидатор, который будет проверять передаваемые пользователем данные на уникальность. При попытке передать одинаковые данные он выдаст предупреждение.
    Вот так, например, можно проверять адрес e-mail на уникальность
    // в модели, в правилах валидации пишите
    ['email', 'unique', 'targetClass' => self::className(),
                                    'message' => 'Извините, такой e-mail уже существует в базе данных',

    Так можно проверять и логины и телефоны и всё что пожелаете...
    Ответ написан