在yii2上使用Pjax时出错

时间:2016-05-17 12:02:44

标签: php yii2 pjax

我试图在yii2上借助pjax实现内容自动加载,但是我得到了Uncaught TypeError: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>

这是Sitecontroller中的操作:

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 个答案:

答案 0 :(得分:0)

  1. 确保您安装了&f; fxp / composer-asset-plugin&#39; corrently。

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

  2. 检查文件夹&'veder / bower / yii2-pjax&#39;,如果它不存在,请运行

    composer install