如何从与数据透视表相关的行中获取一个Builder对象-Laravel

玛塔戈姆

我正在尝试获取一个用户拥有的所有“书”:但是我无法做到我所需要的。

我使用以下代码:

/*Gets all books from the user whose id is 1*/     
$books= User::find(1)->books();

那给了我一个Collection对象;但是我需要一个Builder对象,就像使用“选择”方法时得到的那样。

/* This code return me a "Builder" object */
Books::select(array('id', 'name', 'type'));

我需要Builder而不是Collection因为我在项目上使用了Bllim / Datatables,并且此包只接受一个Builder对象...

如果将其发送给我,则会Collection抛出下一个错误(500-内部服务器错误):

{
  "error":
   {
           "type":"ErrorException",
           "message":"Undefined property: Illuminate\\Database\\Eloquent\\Builder::$columns",
           "file":"\/var\/www\/proyect\/myproyect\/vendor\/bllim\/datatables\/src\/Bllim\/Datatables\/Datatables.php",
           "line":256
   }
}

有人知道解决方案吗?

编辑:

当我两次使用getQuery()方法时,出现以下错误:

{"error":{"type":"ErrorException","message":"array_values() expects parameter 1 to be array, null given","file":"\/var\/www\/proyect\/myproyect\/vendor\/bllim\/datatables\/src\/Bllim\/Datatables\/Datatables.php","line":550}}

很少见,因为当我使用“选择”方法时,数据表可完美运行...

此代码有效:

Books::select(array('id', 'name', 'type'));

但是您告诉我的代码不起作用:

$user = User::find(1);
$user->books()->getQuery()->getQuery();
贾里克·特卡奇克(Jarek Tkaczyk)

使用方法调用books()

$user = User::find(1);

$user->books(); // relation object
$user->books; // dynamic property

首先books()返回一个关系对象,您可以对其进行链接Eloquenr\BuilderQuery Builder方法。

第二个books是动态属性-查询会自动执行,其结果存储在中$user->relations['books']并返回。


编辑

根据注释-Query\Builder如果要访问columns属性,需要的是基础对象,因此需要getQuery两次:

$user->books()
   ->getQuery() // get underlying Eloquent\Builder
   ->getQuery() // get underlying Query\Builder
   ->columns    // public property on the above

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel从数据透视表中仅获取certrain数据

来自分类Dev

Laravel-仅从数据透视表中获取数据

来自分类Dev

Laravel,将JSON数组转换为Array并仅从Array中获取一个对象

来自分类Dev

如何从Laravel中的相关表中获取数据(一对多)?

来自分类Dev

如何从Laravel的第二个表中获取相关数据?

来自分类Dev

Laravel如何通过数据透视表获取相关字段列表

来自分类Dev

获取最后一个ID插入记录到Laravel中的数据库

来自分类Dev

Laravel-如何从角色表中设置的另一个表获取权限行

来自分类Dev

Laravel 6:从多个数据透视表中获取数据

来自分类Dev

如何在Laravel中从第二个模型到第一个模型获取搜索数据?

来自分类Dev

如何多次使用一个表中的一个外键在Laravel中获取数据?

来自分类Dev

Laravel:从相关表中获取/显示数据

来自分类Dev

Laravel从数据透视表中仅获取certrain数据

来自分类Dev

如何访问与另一张表相关的一列Laravel 5.1

来自分类Dev

在laravel 5和mysql中获取groupby对象的第一个和最后一个值

来自分类Dev

Laravel 5.2:数据库记录获取并检查另一个表中的ID

来自分类Dev

Laravel:查询仅获取一个相关ID

来自分类Dev

从使用数据透视表连接的2个表中获取数据(Laravel 5.3)

来自分类Dev

如何从Laravel中的数据透视表中获取更多行

来自分类Dev

Laravel-使用数据透视表唯一的行ID从数据透视表列中获取值

来自分类Dev

在laravel中获取相关表数据

来自分类Dev

可以将数据透视表与laravel 5.5中的另一个数据透视表相关联吗?

来自分类Dev

使用多对多关系Laravel / Eloquent / Query builder时如何从另一个表中获取所有书籍

来自分类Dev

Laravel 如何从两个分离的集合中创建一个对象?

来自分类Dev

Laravel:从另一个数据库表中获取数据

来自分类Dev

如何在 Laravel 中的一个查询语句中加入 Eloquent 和 Query Builder

来自分类Dev

如何在laravel中循环一个数据

来自分类Dev

如何从laravel 5中的两个相关表中获取数据

来自分类Dev

如何在laravel中获取一个数组对象

Related 相关文章

  1. 1

    Laravel从数据透视表中仅获取certrain数据

  2. 2

    Laravel-仅从数据透视表中获取数据

  3. 3

    Laravel,将JSON数组转换为Array并仅从Array中获取一个对象

  4. 4

    如何从Laravel中的相关表中获取数据(一对多)?

  5. 5

    如何从Laravel的第二个表中获取相关数据?

  6. 6

    Laravel如何通过数据透视表获取相关字段列表

  7. 7

    获取最后一个ID插入记录到Laravel中的数据库

  8. 8

    Laravel-如何从角色表中设置的另一个表获取权限行

  9. 9

    Laravel 6:从多个数据透视表中获取数据

  10. 10

    如何在Laravel中从第二个模型到第一个模型获取搜索数据?

  11. 11

    如何多次使用一个表中的一个外键在Laravel中获取数据?

  12. 12

    Laravel:从相关表中获取/显示数据

  13. 13

    Laravel从数据透视表中仅获取certrain数据

  14. 14

    如何访问与另一张表相关的一列Laravel 5.1

  15. 15

    在laravel 5和mysql中获取groupby对象的第一个和最后一个值

  16. 16

    Laravel 5.2:数据库记录获取并检查另一个表中的ID

  17. 17

    Laravel:查询仅获取一个相关ID

  18. 18

    从使用数据透视表连接的2个表中获取数据(Laravel 5.3)

  19. 19

    如何从Laravel中的数据透视表中获取更多行

  20. 20

    Laravel-使用数据透视表唯一的行ID从数据透视表列中获取值

  21. 21

    在laravel中获取相关表数据

  22. 22

    可以将数据透视表与laravel 5.5中的另一个数据透视表相关联吗?

  23. 23

    使用多对多关系Laravel / Eloquent / Query builder时如何从另一个表中获取所有书籍

  24. 24

    Laravel 如何从两个分离的集合中创建一个对象?

  25. 25

    Laravel:从另一个数据库表中获取数据

  26. 26

    如何在 Laravel 中的一个查询语句中加入 Eloquent 和 Query Builder

  27. 27

    如何在laravel中循环一个数据

  28. 28

    如何从laravel 5中的两个相关表中获取数据

  29. 29

    如何在laravel中获取一个数组对象

热门标签

归档