Yii2でPjaxを使用する(ショートレビュー)

私はフレームワークを研究しながらyii2でプロジェクトを開発しており、それが代表する素晴らしいツールの1つを共有せざるを得ませんでした。 この投稿は、Pjaxを使用したことがない人に役立ちます。 投稿に時間を割く経験豊富な開発者は、不正確な部分や追加部分を指摘してくれたことに感謝するので、投稿はより有用で有益なものになります。

参照用:
Pjaxは、pushStateとajaxを使用するjqueryプラグインであり、リンクをたどるときにページを完全にロードするのではなく、部分的にロードする機能を提供しますが、対応するページタイトルと戻る機能を備えています

GridViewでPjaxを使用する


ここでそれについてよく書かれています

つまり、pjaxが機能するためには、次のようにGridViewウィジェットをラップする必要があります。

<?php \yii\widgets\Pjax::begin(); ?> <?= GridView::widget([ // ... configuration here ]); <?php \yii\widgets\Pjax::end(); ?> 


すべてのリンクでpjaxリクエストを作成したくない場合は、除外されたリンクにdata-pjax = 0属性を追加します。 たとえば、次のように:

 <?= \yii\helpers\Html::a(Yii::t('app', '...'), ['car/view', 'id' => $car->id], ['data-pjax'=>0]) ?> 


pjaxウィジェットにもプロパティがあります:

 public $linkSelector; 


pjaxを使用して処理するリンクをフェッチするために使用できます。

送信フォームのpjax

フォーム送信時にpjaxをハングアップする場合は、data-pjax = 1属性を追加する必要があります。これは、デフォルトでウィジェットによって生成されるコードが次のようになるためです。

 jQuery(document).on('submit', "#w2 form[data-pjax]", function (event) {jQuery.pjax.submit(event, '#w2', {"push":true,"replace":false,"timeout":1000,"scrollTo":false});}); 


ただし、プロパティを使用して変更することもできます。

 public $formSelector; 


もっと読む場所

pjaxウィジェットへのリンクgithub.com/yiisoft/yii2-framework/blob/master/widgets/Pjax.php
pjaxプラグインgithub.com/yiisoft/jquery-pjaxへのリンク

Source: https://habr.com/ru/post/J225823/


All Articles