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

使用([])的Laravel只选择关系的某些列

解柏
2023-03-14
    null
$order = Order::with([
        'company',
        'complaints',
        'person',
        'items',
        'items.product',
        'items.product.stockManagement',
        'status', 
    ])->findOrFail($id);
$order = Order::with([
        'company',   // select only id,name, size
        'complaints',  // select only id, name , body
        'person',     
        'items',  
        'items.product',  // select only id, name , price
        'items.product.stockManagement',
        'status',  // select only id
        'items.product.media',
        'items.product.mainProduct',
        'items.product.mainProduct.media'
    ])->findOrFail($id);

共有1个答案

方安怡
2023-03-14

像这样:

$order = Order::with([
    'company:id,name,size',
    'complaints:id,name,body',
    'person',     
    'items',  
    'items.product:id,name,price',
    'items.product.stockManagement',
    'status:id',
    'items.product.media',
    'items.product.mainProduct',
    'items.product.mainProduct.media'
])->findOrFail($id);

关于特定列的加载,文档非常简短(您甚至必须向下滚动到“热切加载特定列”的标题)。

您可能并不总是需要正在检索的关系中的每一列。因此,Eloquent允许您指定要检索的关系的哪些列:

$books = App\Book::with('author:id,name')->get();
 类似资料:
  • 我已经为我的应用程序实现了shedlock,对于我们拥有的两台服务器来说,它运行良好,没有任何问题。 我们现在在另一个域上添加了两个新服务器,shedlock也会选择它们。(好吧,这就是它的本意) 我有一份工作,创建pdf文件并将其放在文件夹中。添加的新服务器无权访问这些文件夹。因此,当这两个新服务器选择作业时,我的作业将失败。 有没有可能告诉夏洛克从我的两台服务器中选择任何一台,或者不选择另外两

  • 使用简化了Hibernate ORM映射。 所有的指南都解释了如何编写不同的查询,但并不清楚如何只选择某些属性。 如果我不需要整个对象,而是需要数据库中所有人员的? 是否可以使用仅选择某些属性?

  • 这是我的密码: 它返回表中所有列的数组。但我不需要把所有的专栏都写下来。我只需要返回以下列:。我对此进行了搜索并找到了答案:(使用函数) 但它并没有返回预期的结果。它返回以下内容: 如您所见,没有和列。我怎样才能修好它?

  • 我想要的是:热切地加载一个关系并指定列(而不是加载关系中的列)。我肯定这是可能的,但我就是不明白... 希望得到你的帮助。

  • 我有一个雄辩的模型,它

  • 我在两个表之间有一个关系,其中一个联接表只有一个结果。 当我定义一个Laravel-BelongToMany关系时,我希望它单独返回该项,而不是只返回一个元素的集合。 有没有一种方法可以在Laravel中对此进行建模? 提前感谢。 [编辑] 我将尝试使用经典的用户/角色示例来解释我想要什么。除了de和表之外,我们还有一个pivot表,它将存储用户拥有的所有角色。用户在任何给定时间只能有一个活动角色