首页 > 解决方案 > in_array() 期望参数 2 是数组,在 Laravel 控制器中给出 null

问题描述

我有两个请求样本和不完整样本,我通过提交表单而不勾选任何复选框来获取完整样本,然后通过单击复选框获取不完整样本。

我可以通过勾选复选框来获取不完整的样本。在获取完整样本时出现错误。

if(!in_array($sample, $request->pending)){
    $tests = Session('tests');
    $createSample = Sample::create([
        'test_user_id' => $request->test_user_id,
        'received_by' => (integer)$request->received_by,
        'received_at' => $now,
        'received_name' => $request->received_name,
        'biobank' => $request->biobank,
        'order_id' => $request->order_id,
        'order_type' => $request->order_type,
        'name' => $request->name,
    ]);

标签: arrayslaravelviewcontrollerphp-7.2

解决方案


这是因为如果您不选中该复选框,则该值将不会提交,因此 $request->pending将为 null 而不是数组。你可以尝试检查它是否为空,然后你可以用它做任何你想做的事情。

if($request->pending){
    if(!in_array($sample, $request->pending)){
        $tests = Session('tests');
        $createSample = Sample::create([
                        'test_user_id' => $request->test_user_id,
                        'received_by' => (integer)$request->received_by,
                        'received_at' => $now,
                        'received_name' => $request->received_name,
                        'biobank' => $request->biobank,
                        'order_id' => $request->order_id,
                        'order_type' => $request->order_type,
                        'name' => $request->name,
        ]);
     }
}

推荐阅读