调用数组的成员函数 validate()

Call to a member function validate() on array

我现在正在做的项目需要你的帮助。 我正在使用 Laravel 进行编程,但我收到此错误:'Call to a member function validate() on array'

这是我的存储方法

public function store()
    {
        $data = $this->check();

        switch ($data) {
            case (0):
                return redirect()->back()->with('error', 'Dieses Produkt ist nicht vorhanden');
            case (1):
                return redirect()->back()->with('error', 'Das Produkt mit dieser Liefer-Nummer ist bereits vorhanden');
            default:
                Product::create($data)->save();

                return redirect('/');
        }
    }

这是检查方法

public function check()
    {
        $i = 0;
        foreach(Validation::all() as $valid)
        {
            $validation[$i] = [
                'id' => $valid->id,
                'Produkt' => $valid->Produkt,
                'PHmax' => $valid->PHmax,
                'PHmin' => $valid->PHmin,
                'Wassermax' => $valid->Wassermax,
                'Wassermin' => $valid->Wassermin,
                'Dichtemax' => $valid->Dichtemax,
                'Dichtemin' => $valid->Dichtemin,
            ];
            $i = $i + 1;
        }
        $data = [
            'LieferNr' => request()->LieferNr,
            'Produkt' => request()->Produkt,
            'PH' => request()->PH,
            'Wasser' => request()->Wasser,
            'Dichte' => request()->Dichte,
            'Bearbeiter' => request()->Bearbeiter,
        ];
        $bigdata = Product::all();
        foreach(Validation::all() as $valid){
            foreach($bigdata as $bigdata){
                if($data['LieferNr'] == $bigdata->LieferNr){
                    return 1;
                }
            }

            if(in_array($data['Produkt'], $validation[0]) || in_array($data['Produkt'], $validation[1] ))
            {
                $PHmax = $valid->PHmax;
                $PHmin = $valid->PHmin;
                $Wassermax = $valid->Wassermax;
                $Wassermin = $valid->Wassermin;
                $Dichtemax = $valid->Dichtemax;
                $Dichtemin = $valid->Dichtemin;

                return $data->validate([
                    'LieferNr' => ['required', 'min:5', 'max:5'],
                    'Produkt' => ['required'],
                    'PH' => ['required', 'numeric', "min:$PHmin", "max:$PHmax"],
                    'Wasser' => "required|numeric|min:$Wassermin|max:$Wassermax",
                    'Dichte' => "required|numeric|min:$Dichtemin|max:$Dichtemax",
                    'Bearbeiter' => ['required'],
                ]);
            }
            else
            {
                return 0;
            }
        }
    }

当我执行 $data->validate(...) 时出现错误 我是 Laravel 的新手,如果你能帮助我,我会很高兴:)

我看到你的问题了 这是因为您在数组 $data

上调用验证
return $data->validate([
                    'LieferNr' => ['required', 'min:5', 'max:5'],
                    'Produkt' => ['required'],
                    'PH' => ['required', 'numeric', "min:$PHmin", "max:$PHmax"],
                    'Wasser' => "required|numeric|min:$Wassermin|max:$Wassermax",
                    'Dichte' => "required|numeric|min:$Dichtemin|max:$Dichtemax",
                    'Bearbeiter' => ['required'],
                ]);

相反,执行以下操作

use Illuminate\Support\Facades\Validator;
$validator = Validator::make($data, [
                    'LieferNr' => ['required', 'min:5', 'max:5'],
                    'Produkt' => ['required'],
                    'PH' => ['required', 'numeric', "min:$PHmin", "max:$PHmax"],
                    'Wasser' => "required|numeric|min:$Wassermin|max:$Wassermax",
                    'Dichte' => "required|numeric|min:$Dichtemin|max:$Dichtemax",
                    'Bearbeiter' => ['required'],
                ]);

if($validator->fails()){
 return 0;
}