我试图在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: </span>
<?php Pjax::begin([]); ?><span class="sorter active-sorter">
<?= Html::a(
'name ',
['site/inner', 'action' => 'name'],
['class' => 'sorter name']
) ?>
<span class="glyphicon glyphicon-chevron-down"></span>
</span> | <?php Pjax::end(); ?>
<?php Pjax::begin([]); ?><span class="sorter"><?= Html::a(
'price ',
['site/inner', 'action' => 'price'],
['class' => 'sorter name']
) ?>
<span class="glyphicon"></span>
</span> | <?php Pjax::end(); ?>
<?php Pjax::begin([]); ?><span class="sorter"><?= Html::a(
'date ',
['site/inner', 'action' => 'date'],
['class' => 'sorter name']
) ?>
<span class="glyphicon"></span>
</span> | <?php Pjax::end(); ?>
<?php Pjax::begin([]); ?><span class="sorter"><?= Html::a(
'popularity ',
['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>
<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
]);
}
答案 0 :(得分:0)
确保您安装了&f; fxp / composer-asset-plugin&#39; corrently。
composer global require "fxp/composer-asset-plugin:~1.1.3"
检查文件夹&'veder / bower / yii2-pjax&#39;,如果它不存在,请运行
composer install