【发布时间】:2017-03-31 00:52:33
【问题描述】:
我正在创建一个购物车系统,这是我在用户会话中输入一些项目的代码:
public function jsonResponse($data){
return response()->json([
'success' => true,
'users' => $data
]);
}
public function post(Request $request ,User $user)
{
$request->session()->push('users', $user);
return $this->jsonResponse($request->session()->get('users'));
}
如何从users 数组中删除唯一项?
替代 01
它可以使用以下代码从users 数组中删除项目:
public function delete(Request $request, User $user)
{
$users = $request->session()->get('users');
foreach ($users as $key => $val) {
if($user->id == $users[$key]->id){
$array = $request->session()->pull('users', []);
unset($array[$key]);
$request->session()->put('users', $array);
return $this->jsonResponse($request->session()->get('users'));
}
}
return $this->jsonResponse($request->session()->get('users'));
}
但我正在寻找一种干净的方式......没有删除数组并将其放回会话......
解决方案01
已找到以下替代代码以获得更简洁的代码:
public function delete(Request $request, User $user)
{
$users = $request->session()->get('users');
foreach ($users as $key => $val) {
if($user->id == $users[$key]->id){
$request->session()->forget('users.'.$key);
return $this->jsonResponse($request->session()->get('users'));
}
}
return $this->jsonResponse($request->session()->get('users'));
}
感谢Kyslik提醒点符号...
【问题讨论】:
标签: php laravel session laravel-5