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へのリンク



All Articles