Это старая версия документа!


Документация по Yii 2 Framework

GET

Yii::$app->request->get();
Yii::$app->request->getQueryParams();
Yii::$app->request->getQueryParam('File');
Yii::$app->request->get('File');

POST

Yii::$app->request->post();
Yii::$app->request->getBodyParams();
Yii::$app->request->getBodyParam('File');
Yii::$app->request->post('File');
$this->registerCssFile();
$this->registerJsFile();

Вставка кода внутри представления

В примере производится вставка JS кода из assets c применением переменной в скрипте JS_FABRIC_CAR_URL

$this = Yii::$app->view;
<?php 
$this->registerJs('var JS_FABRIC_CAR_URL = "' . Html::url(['/core/ajax/fabric-car']) . '";', View::POS_HEAD, 'js-fabric-car-url');
$publish = Yii::$app->assetManager->publish(Yii::getAlias('@app/modules/core/assets/js'));
$this->registerJsFile($publish[1] . '/block-select-car.js', [yii\web\JqueryAsset::className()], ['position'=>View::POS_END]);
?> 
'components' => [
    'assetManager' => [
        'class' => 'yii\web\AssetManager',
        'forceCopy' => true,          
    ],
],
  • forceCopy - Включает постоянное обновление асетов

через ajaxSetup

Добавление csrfToken в Ajax запрос (Yii2)

$js_global_variables = '
$.ajaxSetup({
        data: ' . \yii\helpers\Json::encode([
            \yii::$app->request->csrfParam => \yii::$app->request->csrfToken,
        ]) . '
    });' . PHP_EOL;
$this->registerJs($js_global_variables, yii\web\View::POS_HEAD, 'js_global_variables');

или через header

$js_global_variables = '
$.ajaxPrefilter(function( options ) {
    if ( !options.beforeSend) {
        options.beforeSend = function (xhr) { 
            xhr.setRequestHeader("HTTP_X_CSRF_TOKEN", ' . \yii::$app->request->csrfToken .');
        }
    }
});' . PHP_EOL;
$this->registerJs($js_global_variables, yii\web\View::POS_HEAD, 'js_global_variables');

или через JQuery

      $.ajax({
        url: 'http://site?controller/action',
        type: 'post',
        data: {payload: payload, _csrf: yii.getCsrfToken()},        
        dataType: 'json',
      }).success(function(response) {
      });