荆轲刺秦王
先看一下数据:
Array
(
[0] => Array
(
[coupon_id] => 475
[coupon_name] => 测试coupon_name
[image_url] => xxx.jpg
[total_count] => 10000
[point_exchange] => 3000
[begin_time] => 2020-10-19 14:51:00
[end_time] => 2021-10-19 14:51:00
[city_code] => all
[member_level] => 001
[activity_id] => 3
)
[1] => Array
(
[coupon_id] => 477
[coupon_name] => 111111
[image_url] => xxx.jpg
[total_count] => 10000
[point_exchange] => 3000
[begin_time] => 2020-10-19 14:51:00
[end_time] => 2021-10-19 14:51:00
[city_code] => all
[member_level] => 002
[activity_id] => 3
)
[user_id] => 70
[node_id] => 1001
)
数据中只有数组部分是需要的,而数组中的部分字段又是必填的,所以解决方法如下:
public function setActivityLevel( Request $request )
{
$input = array_txt_filter( $request-> all() );
$pushParam = [];
if( !empty( $input ) )
{
foreach ( $input as $key => $value )
{
if( is_array( $value ) )
{
if( empty( $value['coupon_id'] ) || empty( $value['coupon_name'] ) || empty( $value['total_count'] )
|| empty( $value['point_exchange'] ) || empty( $value['begin_time'] ) || empty( $value['end_time'] )
|| empty( $value['city_code'] ) || empty( $value['member_level'] ) || empty( $value['activity_id'] )
) S::error( 40001 );
array_push( $pushParam, $value );
}
}
}
$apiAccess = new ApiAccess();
if ( !$apiAccess-> setUrl( config( 'api.mcenter.activity_set' )) ) S::error( 60004, '', $apiAccess-> getError());
$res = $apiAccess-> push( $pushParam );
if( isset( $res['code'] )) S::error( 60004 );
return S::jsonReturn( $res );
}
以上,解决问题