Talk is cheap, show me the code.
Контакты

Достижения

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

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

Все теги (14)

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

Все ответы (20)
  • Как проверить существоние объекта в Yii2?

    Screamie
    @Screamie
    Full-stack разработчик
    Можно сделать проверку через Yii::$app->user->isGuest
    Ответ написан
    6 комментариев
  • Как показать контент под углом?

    Screamie
    @Screamie
    Full-stack разработчик
    Лучше делайте изображением. В теории можно сделать, если выдать блокам
    transform: skewX(-20deg);

    А текстовому содержимому внутри:
    transform: skewX(20deg);

    Но тогда придется очень четко готовить изображения. Это трудно. Лучше одним SVG изображением.
    Ответ написан
    Комментировать
  • Как лучше ассоциировать модель и файлы/изображения относящиеся к ней?

    Screamie
    @Screamie
    Full-stack разработчик
    На мой взгляд лучше всего подойдет связующая таблица. И не нужно создавать запись с null при сохранении модели, на тот случай если у модели не будет прикрепленного файла, что бы не плодить пустые записи в БД.

    Структура БД может быть такой

    resource
    -----------
    id:PK
    name
    description

    resource_file
    ---------------
    resource_id:PK
    file_id:PK

    file
    ---------------
    id:PK
    path
    description

    И создать индексы для всех таблиц и внешние ключи для resource_file.resource_id и resource_file.file_id.

    Таким образом вы сможете, например, сохранять несколько файлов для одной модели. А если правильно настроить связи с каскадным удалением, то можно переложить эту логику на БД, что бы не чистить базу вручную после удаления записи модели.
    Ответ написан
    Комментировать
  • Как реализовать компонент в модуле yii2?

    Screamie
    @Screamie
    Full-stack разработчик
    Здравствуйте.

    Модуль это по сути экземпляр приложения и он позволяет использовать сервис локатор и DI как и сам Yii2.

    Если я правильно понимаю ваш вопрос, то вам нужно подключить в конфигурации модуля ваш компонент через DI контейнер. Тогда он будет доступен из модуля.

    В конфигурации это может выглядеть примерно так:

    //...
    'modules' => [
    
            'shop' => [
                'class' => 'common\modules\shop\Module',
                'components' => [
    
                    'cart' => [
                        'class' => 'common\modules\shop\components\Cart',
                        'property' => 'value',
                    ],
                ],
            ],
    ],
    //...


    В классе common\modules\shop\Module заводите публичные поля components и cart. А в методе common\modules\shop\Module::init() осуществляете инициализацию вашего компонента Cart через
    $this->cart = Yii::createObject($this->components['cart']), как написано в оф.доках:

    // create an object using a configuration array
    $object = Yii::createObject([
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=127.0.0.1;dbname=demo',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ]);


    Можно все это сделать и без конфигурирования, просто используя DI в методе init() вашего модуля. Но тогда код будет сильно связанным и вы не сможете конфигурировать ваш компонент без правок кода модуля.
    Ответ написан
    1 комментарий
  • Как настроить .htacces?

    Screamie
    @Screamie
    Full-stack разработчик
    Используйте RewriteEngine в .htaccess в корне сайта с определенными RewriteCond

    Что-то на подобии этого

    RewriteEngine on
    RewriteCond %{REQUEST_URI} !/public/
    RewriteRule ^(.*)$ site.ru/public/$1 [L,R=301]
    Ответ написан
    Комментировать

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

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