在 yii2 上使用 Pjax 时出错

Error using Pjax on yii2

我试图在 yii2 上借助 pjax 实现内容自动加载,但我收到未捕获的类型错误:jQuery(...)。pjax 不是函数。我无法解决它。 这是我的视图文件:

<?php
    use yii\widgets\Pjax;
    use yii\helpers\Html;
?>
<title>Web-shop</title>
</head>
<body>
<div class="sort-panel">
                <div class="container">
                    <div class="sort">
                        <p><span class="hidden-xs">Sort by:&nbsp;</span>
                            <?php Pjax::begin([]); ?><span class="sorter active-sorter">
                                <?= Html::a(
                                'name&nbsp;',
                                ['site/inner', 'action' => 'name'],
                                ['class' => 'sorter  name']
                                ) ?>

                                <span class="glyphicon glyphicon-chevron-down"></span>
                            </span>&nbsp;|&nbsp;<?php Pjax::end(); ?>

                            <?php Pjax::begin([]); ?><span class="sorter"><?= Html::a(
                                'price&nbsp;',
                                ['site/inner', 'action' => 'price'],
                                ['class' => 'sorter name']
                                ) ?>
                                <span class="glyphicon"></span>
                            </span>&nbsp;|&nbsp;<?php Pjax::end(); ?>
                            <?php Pjax::begin([]); ?><span class="sorter"><?= Html::a(
                                'date&nbsp;',
                                ['site/inner', 'action' => 'date'],
                                ['class' => 'sorter  name']
                                ) ?>
                                <span class="glyphicon"></span>
                            </span>&nbsp;|&nbsp;<?php Pjax::end(); ?>
                            <?php Pjax::begin([]); ?><span class="sorter"><?= Html::a(
                                'popularity&nbsp;',
                                ['site/inner', 'action' => 'popularity'],
                                ['class' => 'sorter  name']
                                ) ?>
                                <span class="glyphicon"></span>
                            </span><?php Pjax::end(); ?>
                        </p>
                    </div>
                    <div class="view hidden-xs">
                        <span class="glyphicon glyphicon-th active-view"></span>&nbsp;
                        <span class="glyphicon glyphicon-th-list"></span>
                    </div>
                    <div class="clear"></div>
                </div>
            </div>
        <div class="container inner-content push">
           <?php  foreach ($posts as $post) { ?>
            <div class="event-list">
                <a href="#" class="image-wrapper event-list-image col-sm-4" style="background-image: url(events/party-girls.jpg);"></a>
                <div class="event-list-content col-sm-8">
                    <div class="col-xs-6 event-list-heading">
                        <h1><a href="#"><?=$post->title?></a></h1>
                        <p class="event-list-date"><?=$post->date?></p>                    
                    </div>
                    <p class="col-xs-6 event-list-price"><?=$post->price?></p>
                    <div class="clear"></div>
                    <div class="event-list-desc">
                        <?=$post->full_text?>

                        <a href="<?=$post->link?>" class="go_to">Go to</a>

                    </div>
                </div>
                <div class="clear"></div>
            </div>
           <?php } ?>
        <div class="clear"></div>    
        <?php Pjax::begin(['enableReplaceState' => false]);
        $a = $a +1;?>
            <?= Html::a(
                                'Load More',
                                ['site/inner', 'action' => $action,'a' => $a],
                                ['class' => 'load-more']
                                ) ?><?php Pjax::end(); ?>
        </div>
        <div class="clear"></div>
</body>
</html>

这是站点控制器中的操作:

public function actionInner($action = '', $a = 0)
    {
        $posts = Event::find()->limit(5 + $a*3)->all();
foreach ($posts as $post) {
            $post->price = $post->price - $post->price * $post->discount/100;
        }
        if ($action === 'name') {
            $posts = Event::find()->limit(5 + $a*3)->orderBy(['title' => SORT_ASC])->all();
        foreach ($posts as $post) {
            $post->price = $post->price - $post->price * $post->discount/100;
        }
            }
        $news = Event::find()->limit(5 + $a*3)->orderBy(['date' => SORT_DESC])->all();
        $populars = Event::find()->where(['is_popular'=> 1])->limit(5 + $a*3)->orderBy(['likes' => SORT_DESC])->all();

        return $this->render('inner',[
            'posts' => $posts,
            'time' => date('H:i:s'),
            'a' => $a,
            'action' => $action
        ]);
    }
  1. 确保您正确安装了 'fxp/composer-asset-plugin'。

    composer global require "fxp/composer-asset-plugin:~1.1.3"

  2. 检查文件夹'vender/bower/yii2-pjax',如果不存在,运行

    composer install