• Таблица с однотипными записями для разных сущностей?

    usdglander
    @usdglander
    Yipee-ki-yay
    все комментарии хранить в столбце JSON в таблице сущности

    Это самый дурацкий вариант. Берите первый.
    Ответ написан
    Комментировать
  • Трудно ли будет перенести сайт с yii2 на yii3?

    myks92
    @myks92 Куратор тега Yii
    Нашёл решение — пометь вопрос ответом!
    Yii 3 есть в демо версии, однако там много чего не сделано, код постоянно изменяется со структурой. Разрабатывать на нём точно не стоит. В конце концов демо версия может сильно отличаться от релиза. Ждать релиза yii3 не стоит. Точной даты нет. Известен лишь год - 2019.

    Если выберите фреймворк yii2, то реализуйте проект обдуманно. Перенести проект на yii3 будет не сложно, используя паттерны проектирования и отделя бизнес логику от остальной части, за которую отвечает Фреймворк. Подробно написано здесь: Архитектура приложения. Как сделать независимые модули (сервисы)?

    Вы так же можете увидеть прогресс в репозиториях GitHub. Что нового в UPGRADE, и посмотреть структуру пакетов. Да, именно пакетов, а не модулей. Сам больше не будет монолитом он будет собираться по запчастям.

    Изменений в проектировании много, но команда постарается сохранить некоторые привычные вещи. Например, если раньше использовали Yii::t(), то в yii3 нужно будет использовать $this->app->t()
    Заменить через IDE по проекту не сложно! Однако есть и координальные решения связанные с Active Record. С большей вероятностью этот паттерн исчезнет в версии 3.0. Это обсуждается тут. Поэтому стоит обратить внимание на использование сторонних пакетов. В своём проекте вы сможете что-то изменить под Yii3, а вот сторонние расширения могут вообще никогда не переписаться по трети версию.

    Информацию про yii3 можно отслеживать тут. Так же создан новый раздел русскоязычного ФОРУМА. Попробуйте познакомиться с Yii3 Demo
    Ответ написан
    9 комментариев
  • Как настроить yii2 на linux?

    Immortal_pony
    @Immortal_pony
    Посмотрел в логах в чем причина
    [Sat Feb 10 12:52:58.622686 2018] [mpm_prefork:notice] [pid 7009] AH00169: caught SIGTERM, shutting down

    Это не причина, ищите причину выше по логу.

    1. Папка /var/www/html по умолчанию папка для файлов сайта по-умолчанию. Соответственно, складывать файлы своего сайта внутрь нее не совсем корректно. Более правильным решением будет вынести папку trainingYii на один уровень иерархии с html, то есть разместить ее по адресу /var/www/trainingYii.

    2. Точка входа у Yii находится в папке "web", а не в корне. Это надо отразить в "DocumentRoot" и "Directory" в конфигурационном файле виртуального хоста.

    3. Хранить логи web-server'а в /var/www тоже не очень хорошая идея. Либо складывайте их в /var/log/apache2 (по умолчанию), либо в то же место, где хранит логи Yii (...runtime/logs).

    C учетом этих рекомендаций конфиг будет выглядеть примерно так:
    <VirtualHost *:80>
            ServerName yii2-app
            DirectoryIndex index.php
            DocumentRoot /var/www/trainingYii/web/
    
            <Directory /var/www/trainingYii/web/>
                    Options +FollowSymLinks +MultiViews
                    AllowOverride All
                    Order allow,deny
                    allow from all
            </Directory>
    
            ErrorLog /var/www/trainingYii/runtime/logyii2-app/runtime/logs/apache-error.log
            CustomLog /var/www/trainingYii/runtime/logs/apache-access.log combined
    </VirtualHost>


    И делаю символическую ссылку
    sudo ln -s /etc/apache2/sites-available/yii2-app.conf /etc/apache2/sites-enabled/yii2-app.conf

    Не надо так делать. Еслть специальная команда a2ensite, которая, в частности, сама эту ссылку создаст.
    a2ensite yii2-app
    Ответ написан
    5 комментариев
  • Как настроить yii2 на linux?

    slo_nik
    @slo_nik
    Добрый день.
    А зачем символическую ссылку делать?
    Надо отключить старую конфигурацию и подключить свою.
    Делается это командами в консоли
    a2dissite name_file.conf
    a2ensite name_file.conf

    В hosts просто оставить по умолчанию 127.0.0.1 localhost
    Внутри файл yii2-app.conf скопируйте конфигурацию default.conf(или как у Вас этот файл называется) и замените пути на свои.
    По завершению перегрузите apache2.
    p.s. К yii2 Ваша проблема не имеет никакого отношения.
    Ответ написан
    Комментировать
  • Как указать класс для конкретного td в GridView Yii2?

    Я не силен в yii2, но вот так работает
    GridView::widget([
           // ...
           // --------------------- КЛАСС ДЛЯ строки -------------------------------
            'rowOptions'=>function ($model, $key, $index, $grid){
                $class=($model->confirmed)?'confirmed-row':'';
                return [
                    'key'=>$key,
                    'index'=>$index,
                    'class'=>$class
                ];
            },
           
            'columns'      => [
                [
                    'attribute' => 'confirmed',
                    // ----------------------  КЛАСС ДЛЯ СТОЛБЦА -----------------------
                    'contentOptions' => ['class' => 'text-center'],
                    'value' => function ($model) {
                       // ...
                    },
                    'format' => 'html',
               
                ],
                
            ],
        ]);
    Ответ написан
    Комментировать
  • Мультиязычность в базе данных недвижимости?

    @Alj
    Разумеется, несколько записей для одного объекта - как минимум нелогично. И считать, что языков всегда будет 3 тоже. Предложение простое - выбрать основной язык (на котором работают сотрудники, тот на котором объект обязан быть назван) и создать таблицу перевода:
    язык ( id ; language )
    перевод ( id AUTO_INCREMENT ; язык ; таблица ; строка ; значение )
    Т.е. вы создали город "Москва" - просто один и в интерфейсе рядом кнопка "переводы" - открывается всплывающее окно с другими языка (ua, en) вводятся переводы, сохраняются, кнопка перекрашивается (красная - нет переводов; серая - частично переведено ; синяя - все переведено ) и title заодно можно использовать для информирования. А записи в БД следующие
    города ( 1 , 'Москва'-выбрали основной - русский )
    перевод ( * , 'города' , 1 - id записи в таблице города , 1-для украинского , 'Москва' - так же, наверное)
    перевод ( * , 'города' , 1 - тот же id той же одной Москвы, 2-для английского , 'Moscow')
    перевод ( * , 'улицы' , 1 , 2-для английского , 'Central st.') - т.е. перевели улицу "центральная" в таблице улицы
    Ответ написан
    Комментировать