Это старая версия документа!
Документация по Yii 2 Framework
Configuration
URL Management
Request
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');
View
CSS
$this->registerCssFile();
JS
$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]); ?>
assetManager
'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) { });