• Как написать ссылку?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    frontend и backend отдельные app. И url manager одного app не подозревает о существовании второго. Поэтому нужно в конфиге frontend делать еще один urlManager, который будет знать о backend. И использовать его при формировании ссылки.
    Например:
    //это стандарный 
            'urlManager' => [
                'class' => 'yii\web\urlManager',
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [],
            ],
    //это второй 
            'urlManagerBack' => [
                'class' => 'yii\web\urlManager',
                'baseUrl' => 'http://mybackenddomain.com',
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => require(__DIR__ . '/../../backend/config/routes.php'), //тут путь к файлу с rules для backend
            ],

    А ссылку формировать так:
    Yii::$app->urlManagerBack->createAbsoluteUrl('/'); //ссылка на главную
    Yii::$app->urlManagerBack->createUrl(['site/about']); //Ваш пример
    Ответ написан
  • Как передать get параметр?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            ...
            [
                'class' => 'yii\grid\ActionColumn',
                'template' => '{view} {update} {mydelete}',
                'buttons' => [
                    'mydelete' => function ($url,$model) {
                        return Html::a(
                        'удаляшка', 
                        ['/controller/delete', 'id'=>$model->id, 'second_hren'=>'hihichpock']);
                    },
                ],
            ],
        ],
    ]); ?>
    Ответ написан
    2 комментария
  • Как удалить CRUD?

    Akdmeh
    @Akdmeh
    PHP, Yii2, Music
    Потому что в CRUD стоит удаление только методом POST (посмотрите пример генератора, там видно, в каком формате должна быть ссылка, чтобы удалить запрос). Это сделано от CSRF-атак.
    Что делать?
    1) Или переходить только по той ссылке, которая делает AJAX-запрос на удаление (смотрите стандартный код после генератора)
    2) Удалите behavior VerbFilter, но это - очень нежелательно, так как снижает безопасность приложения
    Ответ написан
    3 комментария
  • Запрос как составить?

    @holfza
    // UPDATE `customer` SET `age` = `age` + 1
    Customer::updateAllCounters(['age' => 1]);
    Ответ написан
    Комментировать