当前位置: 首页 > 知识库问答 >
问题:

Laravel关于关系的雄辩分页

仰翔
2023-03-14

我正试图建立这样一种雄辩的关系:

 $query = Product::find(1)->options()->paginate();

但我得到了以下错误:

Fatal error: Call to a member function getCurrentPage() on a non-object

我已确认代码$query=Product::find(1)-

class Product extends Eloquent
{

    protected $table = 'products';

    public function options ()
    {
        return $this->hasMany('ProductOption', 'product_id');
    }
}

class ProductOption extends Eloquent
{
    protected $table = 'product_options';

    public function product()
    {
        return $this->belongsTo('Product', 'product_id');
    }
}

雄辩不返回分页结果的关系?


共有3个答案

金飞
2023-03-14
$query = Product::find(1)->get()->options()->paginate(); 

尝试添加get

昌招
2023-03-14

创建自定义长度感知分页器。

$options = new LengthAwarePaginator(Product::find(1)->options()->
            ->skip(($request->input('page', 1) - 1) * 10)->take(10)->get(),
            Product::find(1)->options()->count(), 
            10, $request->input('page', 1),
            [
                // paginator options here
            ]);
颛孙和悌
2023-03-14

您不能像那样延迟加载关系分页,而是在您的产品模型中,将以下函数放在您的选项下面,这样您的选项就有很多关系

public function getOptionsPaginatedAttribute()
{
    return $this->options()->paginate(10);
}

这将允许您通过以下方式调用关系数据的分页

$product->options_paginated
 类似资料:
  • 我有以下三个表格: 所以基本上这种关系就像: 用户有许多项目 项目属性到客户端 我的问题是: 如何使用eloquent获得用户的所有客户端? 似乎我不能用户hasManyPass方法,因为在客户端表中没有project_id。 因此,我希望达到的目标是:

  • 我有三种模式——博客、帖子、评论。博客有很多帖子,帖子有很多评论 当我写作时 它会给所有的博客发帖子和评论。但我将如何获得那些由管理员用户创建的博客,即评论表中的用户id。在哪里写入

  • 我是Laravel5.2的新手,正在开发一个遗留系统,对雄辩有点困惑,希望有人能给我代码。 共有3个表格: 卡片类别卡片2类 卡片可以是许多类别的一部分,这些类别保存在cards2cat表中。 cards2cat表的结构如下 id(主键)图像(卡)类别 我想做的是在Cards模型中有一个方法,名为getCardsWithCategors,它返回Cards信息和category表中类别的名称。 ca

  • 我正在编写php代码,对于当前的项目,我正在使用laravel框架(带有雄辩的ORM)。在这个项目中,我创建了两个表:用户和任务。我想在这些表之间创建一个“一对多”的关系。因此,一个用户可以有许多任务。在Tasks类中,我创建了方法所有者(): 但是当我以前得到用户名的时候 我得到这个异常:未定义的属性:illumb\Database\Eloquent\Relations\BelongsTo::$

  • 我有一个表事务与复合主键id,Nom,日期和一个表Cour与Nom作为主键和一个事务有关一个Cour。 我怎样才能得到一个有口才关系的特定交易的课程?

  • 我试着补充: 并用调用,但响应为空。

  • 我刚刚开始学习LaravelV3,我试图通过创建一个博客来了解eloquent的一对多关系。我的帖子与类别有多对一的关系(每个帖子都链接到一个类别)。 我有以下表格和以下字段: 帖子:id、标题、正文、创建日期、类别id 类别:id、名称 我有以下两种型号: 我想出了如何通过传递类别id来获得所有帖子: 我只是需要帮助,找出如何获得所有的职位,并得到他们的更正类别。因此,在视图中的一天结束时,我可

  • 我有帖子表和评论表。我想得到所有的帖子与它的评论和以下返回只是帖子有评论: 更新 例如 ID帖 1个职位1 2后2 id post\u id评论 1萨姆勒大学评论 Post::with('comments')只返回有注释的帖子,它只返回第一篇帖子,因为第二篇帖子没有注释,我想获取所有帖子(有注释或没有注释)