您的位置 首页 编程知识

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

查询构造器中批量处理数据集合 在laravel中,可以通过修改内置的toarray方法或自己实现一个新方法,实…

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

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

在laravel中,可以通过修改内置的toarray方法或自己实现一个新方法,实现类似于中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 功能的效果?的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/2998.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部