我使用八进制和用户扩展插件(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);
}又一次没有成功。有人能给我一些导航和帮助修复吗?
发布于 2021-01-07 10:32:43
如果您使用的是random users function from \classes\UserManager.php
我检查了代码,发现它使用了Illuminate\Support\Collection对象。因此,由于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,它会工作得很好。
如有任何疑问,请评论。
https://stackoverflow.com/questions/65610466
复制相似问题