Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (4)

Наибольший вклад в теги

Все теги (10)

Лучшие ответы пользователя

Все ответы (9)
  • Как в Yii2 basic убрать web/ из url при помощи .htaccess и правил urlManager'а?

    @urfinjazz Автор вопроса
    Отвечу на свой вопрос :)
    спасибо, Иван, за наводку

    .htaccess в web оставляем такой же
    .htaccess в корне сайта:
    Options +FollowSymLinks
    IndexIgnore */*
    RewriteEngine on
    
    RewriteCond %{REQUEST_URI} !^/(web)
    RewriteRule ^assets/(.*)$ /web/assets/$1 [L]
    RewriteRule ^css/(.*)$ web/css/$1 [L]
    RewriteRule ^js/(.*)$ web/js/$1 [L]
    RewriteRule ^images/(.*)$ web/images/$1 [L]
    RewriteRule (.*) /web/$1
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /web/index.php

    в конфиге web.php в 'request' добавляем строчку:
    'baseUrl'=> '',

    Всем спасибо за внимание!
    Ответ написан
    9 комментариев
  • Как в Yii2 работать со связанными таблицами при помощи ActiveRecord?

    @urfinjazz Автор вопроса
    Отвечу на свой вопрос, вдруг кому-то пригодится.

    Итак, задача:
    Есть таблица pages и связанная таблица content, в таблице content может быть несколько записей с одним page_id.
    Нужно реализовать список всех pages, при клике на "edit page" мы должны попасть на страницу с контентом этой page.

    Реализация:
    Заходим в gii, создаём модель для pages, если поставить галочку Generate Relations, в моделе создастся функция
    getContents()
        {
            return $this->hasMany(Content::className(), ['page_id' => 'id']);
        }

    Создаём модель для Content.
    Создаём CRUD для Pages.

    В контроллере Pages меняем строчку
    $model = Pages::findOne($id)
    на
    $model = Pages::find()->with('contents')->where(['id'=>$id])->one()

    Всё. Можем работать с данными из таблицы content.

    Первый вопрос - можно ли пихать такое в контроллер - остаётся открытым.
    Вернее, я уверен, что не стоит.
    Ответ написан
    7 комментариев

Лучшие вопросы пользователя

Все вопросы (13)