Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SET在拉雷维尔按需追加_Php_Laravel - Fatal编程技术网

Php SET在拉雷维尔按需追加

Php SET在拉雷维尔按需追加,php,laravel,Php,Laravel,我有一个模型,它有一系列附加属性。我遇到的问题是,我不需要控制器中index方法的所有属性,我只需要一些属性。我试图用setAppends方法附加它们,但它似乎不起作用 以下是我尝试过的: $orders = new Order; $order->setAppends(['overdueBy'])-get(); 这只是返回订单,但没有附加属性。如果我将其称为静态方法(我在internet上查找答案时看到),它会引发异常,我需要对结果进行分页,并应用一些过滤器(如orderBy),但如果

我有一个模型,它有一系列附加属性。我遇到的问题是,我不需要控制器中index方法的所有属性,我只需要一些属性。我试图用setAppends方法附加它们,但它似乎不起作用

以下是我尝试过的:

$orders = new Order;

$order->setAppends(['overdueBy'])-get();
这只是返回订单,但没有附加属性。如果我将其称为静态方法(我在internet上查找答案时看到),它会引发异常,我需要对结果进行分页,并应用一些过滤器(如orderBy),但如果我这样做,则它会在没有该方法的生成器类上调用该方法。在检索到的每个模型上调用它将产生n+1问题

是否可以按需提供附件

setAppends方法用于单行。因此,您可以按如下方式使用它:

$order=order::first;//或者你需要的任何东西

return$order->setAppends['overdueBy]

还可以在集合上迭代并按记录设置

$orders=订单::您需要什么


如果您想在运行时追加数据,那么应该使用

$order->setAppends['overdueBy']->toArray

但请记住,这将覆盖集合的现有属性

有关参考信息,请参见

我建议您使用makeHidden方法来隐藏不必要的内容


属性参考参见

您可以将其缩短:$orders->each->setAppends['overdueBy'];当您执行Order::all时,它是如何工作的?它是否循环抛出每个循环,然后追加?如何将其急切加载?您不能将急切加载与appends一起使用,它只会将某些内容附加到json@Matz,那么这是否意味着$append=['orderBy']在Model::class上,循环是否会抛出检索到的每个模型,然后附加自定义作用域?我现在使用laravel调试栏检查,不幸的是,当我将执行查询的作用域附加到关系时,它会生成20个额外查询。overdueBy到底是什么?关系?范围?你能把订购的型号寄出去吗?
$orders->each(function($order) {
   $order->setAppends(['overdueBy']); 
});