十月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是{方法{1}}

使用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>>),它会正常工作。

如果任何疑问请评论。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...