类分页器不存在-Laravel


Class paginator does not exist - Laravel

我尝试使用Capsule创建自己的mysql数据库连接。我收到了来自Laravel的错误消息:

类分页器不存在

然后我添加了一行代码:

$capsule->getContainer()->bind('paginator', 'Illuminate'Pagination'Paginator');

显示了另一条错误消息:

目标[IIlluminate''View''ViewFinderInterface]不可实例化

这是构造函数:

use Illuminate'Database'Capsule'Manager as Capsule;
public function __construct($params){
    $capsule = new Capsule;
    $params = array_merge(static::$baseParams, $params);
    $capsule->addConnection($params);
    //$capsule->getContainer()->bind('paginator', 'Illuminate'Pagination'Paginator');
    $this->db = $capsule->getConnection();
}

ps:

$this->db->table('table_name')->get() work!
$this->db->table('table_name')->paginate(4) doesn't work! 

如何解决此问题?谢谢

我在Laravel之外运行Eloquent时收到了同样的错误消息。也许我对如何修复它的研究会引起一些人的兴趣。

传呼机依赖于3个模块:请求查看翻译器。第一个和最后一个模块的初始化非常简单,但View需要额外的设置。因此,我们需要手动初始化分页器类和依赖项。

View类最难启动,但我们可以使用这个小包将其初始化为独立组件。只需将"philo/laravel-blade": "2.*"添加到composer.json文件

然后更换$capsule->getContainer()->

    self::$capsule->getContainer()->bind('paginator', function() {
        // View initialization
        $views = __DIR__ . '/views';
        $cache = __DIR__ . '/cache';
        $blade = new 'Philo'Blade'Blade($views, $cache);
        return new 'Illuminate'Pagination'Factory(
            // Initialize and setup Request
            'Illuminate'Http'Request::createFromGlobals(),
            // Get ViewFactory instance
            $blade->view(),
            // Initialize Translator
            new 'Symfony'Component'Translation'Translator('en')
        );
    });

现在您可以使用分页方法。只需要2个技巧。也许你需要设置一个基本网址:

$collection->setBaseUrl('http://example.com');

如果您需要将集合转换为json格式的,请使用json_encode($collection->toArray())

点击此处阅读更多关于依赖关系魔力的信息