php - 十月CMS分页
问题描述
我使用 octobercms 和用户扩展插件(Clacke)。我尝试呈现分页,因为现在我有很多注册用户并且他们显示在一个页面上。
我使用\classes\UserManager.php中的随机用户函数
public static function getRandomUserSet($limit = 7)
{
$returner = new Collection;
$userCount = User::all()->count();
if(!isset($userCount) || empty($userCount) || $userCount == 0)
return [];
if($userCount < $limit)
$limit = $userCount;
$users = User::all(); //paginate(5)
if(empty($users))
return $returner;
$users->random($limit);
$friends = FriendsManager::getAllFriends();
foreach($users as $user)
{
$userAdd = true;
if(!$friends->isEmpty())
{
foreach($friends as $friend)
{
if($user->id == $friend->id)
{
$userAdd = false;
break;
}
}
}
if($user->id == UserUtil::getLoggedInUser()->id)
$userAdd = false;
if($userAdd)
{
$returner->push($user);
}
}
return $returner->shuffle();
}
尝试通过更改来做到这一点, return $returner->paginate(25);
但$users = User::paginate(25);
会给我一个错误
在渲染模板期间引发了异常(“方法分页不存在。”)。
之后,我尝试直接在\components\User.php中进行更改
public function randomUsers()
{
return UserManager::getRandomUserSet($this->property('maxItems'))->paginate(12);
}
但又是同样的错误。
尝试使用此代码并在default.htm中呈现 {{ tests.render|raw }}
public function randomUsers()
{
$test = UserManager::getRandomUserSet($this->property('maxItems'));
return $test->paginate(10);
}
再次没有成功。谁能给我一些导航和帮助来解决这个问题?
解决方案
如果您正在使用random users function from \classes\UserManager.php
我检查了代码,发现它使用了Illuminate\Support\Collection
Object. 所以,因为Collection Object
分页的工作方式不同
你需要使用forPage
方法。
另一方面paginate
是Illuminate\Database\Eloquent\Collection
<- 的方法,所以两个集合都不相同
利用
forpage
// OLD return UserManager::getRandomUserSet($this->property('maxItems'))
// ->paginate(12);
TO
return UserManager::getRandomUserSet($this->property('maxItems'))
->forPage(1, 12);
forPage
方法像forPage(<<PAGE_NO>>, <<NO_OF_ITEM_PER_PAGE>>)
;
所以如果你使用forPage
它会很好。
如有任何疑问,请发表评论。
推荐阅读
- python - 如何使 Epicurve(使用 EpiPy)显示为图形?
- c# - azure Web App 上 .NET Core Web API 应用程序的动态 IP 地址限制
- jquery - jQuery关于点击事件逻辑
- apache - 我们可以使用 apache camel 创建 sftp 代理吗?
- reporting-services - 如何使用报表服务 web 服务上传图像
- hive - 在和不在 HiveQL 中
- apache-kafka - ProducerFencedException 处理 Kafka 流
- html - 在 Bootstrap 4 中设备较小时固定表列
- php - Ubuntu 18.04升级后php7.2-curl无法安装
- ruby-on-rails - Heroku CI 测试应用程序删除 /spec 目录