【发布时间】:2019-11-19 02:04:44
【问题描述】:
我无法删除此 array 中的 object。
首先我得到要从数组中删除的$id。
但是当我过滤时,将数组添加到它的附加键。
所以逻辑将不再适用于应用程序的其余部分。
删除cart 数组中的对象后,如何在options 对象上保持相同的语法?
public function destroy( $id, Request $request )
{
$user = $this->user ;
$data = array_filter( $user->options->cart , function ( $option ) use ( $id ) {
if ( $option->product_id == $id ) {
return false;
}
return json_encode($option);
});
//dd($user->options->cart);
//dd($data);
$user->options = (object)['cart' => $data ];
$user->save() ;
return response()->json( $user , 200 ) ;
}
已解决:
public function destroy( $id, Request $request )
{
$user = $this->user ;
$data = array_filter( $user->options->cart , function ( $option ) use ( $id ) {
if ( $option->product_id == $id ) {
return false;
}
return true;
});
$user->options = ['cart' => array_values( $data ) ];
$user->save() ;
return response()->json( $user , 200 ) ;
}
}
【问题讨论】:
标签: php arrays laravel object array-filter