首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >还是toArray?

还是toArray?
EN

Stack Overflow用户
提问于 2022-01-14 07:35:42
回答 2查看 91关注 0票数 0

Laravel的优点是什么?

我想问一下,从模型返回的集合是否会直接使用?

还是将其转换为Array使用?

因为foreach集合的效率不能与数组的效率相比

使用ORM关系真的有好处吗?

EN

回答 2

Stack Overflow用户

发布于 2022-01-14 08:15:41

问题的一部分是征求意见,这并不是堆栈溢出的真正目的,但要回答不是的部分,可以使用它上的->toArray()方法作为纯PHP数组返回一个集合。

你是否选择这样做是一个主观的选择。

票数 0
EN

Stack Overflow用户

发布于 2022-01-14 08:35:16

集合与数组的效率是很方便的。修改集合、过滤集合、映射集合和执行其他任务都很容易。

当然,这可以通过array_map和array_walk等本地PHP方法来完成,但是您必须自己记住这些方法。

但是Laravel集合带来了更多的实用功能,在本地PHP中需要大量的样板代码,这很难一眼就读到和处理。在集合查询中,它更简洁,并且更容易作为自我记录代码。来读取。

就像这样

代码语言:javascript
复制
   $black_puppies_collection = $dogs_collection
      ->where('color', 'black')
      ->where('age', '<','1')
      ->mapToGroups(function($dog, $index) {
           return [$dog['race'] => $dog]];
       });
   $border_collie_puppies = $black_puppies_collection['border_collies'];

在本机php中,这将变成如下所示:

代码语言:javascript
复制
$black_puppies = array_filter(function($dog) {
    return $dog['color'] == 'black' && $dog['age'] < 1;
});
$black_puppies = array_reduce(function($accumulator, $dog) {
   $accumulator[$dog['race']] = $dog;
   return $accumulator;
});
$border_collie_puppies = $black_puppies['border_collies'];

总之,这并没有太大的区别,但是代码容易使用雏菊链接方法,只需将它变成一个简单的指令集,并自动完成IDE的操作,就可以轻松地处理大大小小的数据集。

集合节省了编码时间和精力,这将是转向它们的主要原因。在php中,为了提高速度,很少需要付出这样的努力。

您很可能会直接使用集合在外汇中循环,以满足您需要的任何目的。

代码语言:javascript
复制
foreach($collection as $model) {
   $this->doMagic($model);
}

ORM关系的优点很难解释,但是当您对它们和集合感到满意时,您希望其他框架都有它们。

就我个人而言,我更喜欢关系和模型在其越冬不育系中的风暴库实现,因为它们改进了建立关系的Laravel方法,减少了您需要使用Laravel的大量样板代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70707352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档