本站资源收集于互联网,不提供软件存储服务,每天免费更新优质的软件以及学习资源!

Laravel查询构造器如何实现批量处理数据集合类似ThinkPHP中withAttr功能的效果?

网络教程 app 1℃

Laravel查询构造器如何实现批量处理数据集合类似ThinkPHP中withAttr功能的效果

laravel查询构造器中批量处理数据集合

在laravel中,可以通过修改内置的toarray方法或自己实现一个新方法,实现类似于thinkphp中withattr功能的效果。

自定义方法

namespace app { … class customcollection extends collection { // …其他方法 public function toarray(callable $callback = null) {$toarray = $this->items;if ($callback !== null) { $toarray = array_map($callback, $toarray);}// …其他逻辑return $toarray; } }}

然后在查询构造器中使用自定义方法:

$orders = db::table(‘orders’) ->select(‘*’) ->toarray(function ($order) { $order[‘status’] = [‘待付款’, ‘待发货’][$order[‘status’]]; return $order; });

修改toarray方法

另一种方法是直接修改toarray方法:

use illuminatesupportcollection;collection::macro(‘customtoarray’, function () { $toarray = $this->items; foreach ($toarray as &$order) { $order[‘status’] = [‘待付款’, ‘待发货’][$order[‘status’]]; } // …其他逻辑 return $toarray;});

然后在查询构造器中使用:

$orders = DB::table(‘orders’) ->select(‘*’) ->customToArray();

以上就是Laravel 查询构造器如何实现批量处理数据集合类似 ThinkPHP 中 withAttr 功能的效果?的详细内容,更多请关注范的资源库其它相关文章!

转载请注明:范的资源库 » Laravel查询构造器如何实现批量处理数据集合类似ThinkPHP中withAttr功能的效果?

喜欢 (0)