Laravel的优点是什么?
我想问一下,从模型返回的集合是否会直接使用?
还是将其转换为Array使用?
因为foreach集合的效率不能与数组的效率相比
使用ORM关系真的有好处吗?
发布于 2022-01-14 08:15:41
问题的一部分是征求意见,这并不是堆栈溢出的真正目的,但要回答不是的部分,可以使用它上的->toArray()方法作为纯PHP数组返回一个集合。
你是否选择这样做是一个主观的选择。
发布于 2022-01-14 08:35:16
集合与数组的效率是很方便的。修改集合、过滤集合、映射集合和执行其他任务都很容易。
当然,这可以通过array_map和array_walk等本地PHP方法来完成,但是您必须自己记住这些方法。
但是Laravel集合带来了更多的实用功能,在本地PHP中需要大量的样板代码,这很难一眼就读到和处理。在集合查询中,它更简洁,并且更容易作为自我记录代码。来读取。
就像这样
$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中,这将变成如下所示:
$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中,为了提高速度,很少需要付出这样的努力。
您很可能会直接使用集合在外汇中循环,以满足您需要的任何目的。
foreach($collection as $model) {
$this->doMagic($model);
}ORM关系的优点很难解释,但是当您对它们和集合感到满意时,您希望其他框架都有它们。
就我个人而言,我更喜欢关系和模型在其越冬不育系中的风暴库实现,因为它们改进了建立关系的Laravel方法,减少了您需要使用Laravel的大量样板代码。
https://stackoverflow.com/questions/70707352
复制相似问题