laravel - 辅助函数使用

tap()
  • tap() 方法允许你随时加入集合。 它接受回调并传递并将集合传递给它。 您可以对项目执行任何操作,而无需更改集合本身。 因此,您可以在任何时候使用 tap 来加入集合,而不会改变集合
public function testTap(){
     $users = User::limit(10)->get();

     $res = $users->where('id', '>', 7)->tap(function ($items){
         //item 为传入的集合
         //此操作并不会改变res的结果
         $items->where('id', '>', 11);
         Log::error($items->values());//执行筛选后的值
         
         //可以在tap中改变数据值
         foreach ($items as $it){
             $it->id +=10000000;
             $it->save();
         }
     });
     dd($res);
 }
each()
  • 是一种迭代整个集合的简单方法。 它接受一个带有两个参数的回调:它正在迭代的项和键
public function testEach(){
  $users = User::limit(10)->get();
     //each - 遍历集合
     $res = $users->each(function ($item, $key){
         echo $key."<br/>";//key 下标从0开始
         if ($key == 3){
             return false;//返回false结束遍历
         }
     });
     dd($res);
 }
contains()
  • 方法只检查集合是否包含给定值
public function testContains(){
     $collect = collect(['country' => 'USA', 'state' => 'NY']);
     //通过值去查找
     var_dump($collect->contains('US'));//false
     var_dump($collect->contains('USA'));//true
     //通过键值对去查找
     var_dump($collect->contains('title', 'Not Found Title'));// false

     $res = $collect->contains(function ($item, $key){
         return strlen($item) > 2;
     });
     echo $res;//1

 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值