【问题标题】:Forget index using it key value in laravel session在 laravel 会话中使用它的键值忘记索引
【发布时间】:2021-06-02 23:02:08
【问题描述】:

$比较结果:-

代码:-

public function remove(Request $request)
{
    $compare = $request->session()->get('compare', collect([]));
    $compare->forget($request->id);
    
    
    
    return back();
    
}

我想删除数组 $compare 中的数据,我正在从会话中检索数据,但使用键值删除相关索引,包括其值。

array:3 [
     0 => "4"
     1 => "2"
     2 => "1"   ]

forget()pull() 0 => "4" 使用它的值"4"

【问题讨论】:

    标签: php laravel session eloquent


    【解决方案1】:

    你需要filter:

    $compare->filter(function ($value, $key) use ($request) {
        // return only the values that don't match the request id
        return $value !== $request->id;
    });
    

    【讨论】:

      【解决方案2】:

      您需要知道它的密钥才能使用forget()
      如果要按值删除项目,可以使用filter()reject()

      $id = $request->id;
      
      $filtered = $compare->filter(function($value) use ($id) {
          return $value !== $id;
      });
      
      $filtered = $compare->reject(function($value) use ($id) {
          return $value === $id;
      });
      

      要在会话中存储数据,您可以使用session() 助手通过键设置值,因此compare 键将是这样的。

      session('compare', $filtered);
      

      【讨论】:

      • 请告诉我如何使用此代码删除/忘记会话值... $compare->forget($request->id);我已经尝试过了,但它没有返回所需的值键。
      • @SaadHamza 是的,更新了答案以包括设置会话值。
      猜你喜欢
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 2021-07-04
      • 2020-01-05
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      相关资源
      最近更新 更多