Laravel5.6で名刺管理アプリを作成しています。
フォームを作成し、名刺情報を追加登録する際に、バリデーションをかけたいのですが、その際にエラーメッセージが出ました。
エラーメッセージは以下の通りです。
Argument 1 passed to App\Http\Controllers\meishicontroller::getValidator() must be an instance of Illuminate\Http\Request, array given, called in C:\xampp\htdocs\meishikanri\app\Http\Controllers\meishicontroller.php on line 148
エラーメッセージによると、must be an instance of Illuminate\Http\Requestが必要だよ、ということが書いてあるようですが、コントローラ側ではすでにこのRequestクラスはUSEの欄に記載してあります。
use Faker\Calculator\Iban; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\Meishi; use Illuminate\Support\Facades\Input; use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Http\Response; use \SplFileObject;
エラーメッセージをgoogleなどで調べてみても、このuseの欄にIlluminate\Http\Requestを追記しろ、とのことですが、ここですでに追記されています。
バリデーションのほうのソースコードは以下になります。
//confirm画面・result画面で使用するバリデーションのルール public function getValidator(Request $request) { $rules = [ 'name' => 'required|string|max:60', 'company' => 'required|string|max:60', 'tel' => 'required|numeric|digits_between:10,11', 'address' => 'required|string|max:60', 'email' => 'required|email']; $validator = Validator::make($request, $rules); return $validator; } public function confirm(Request $request) { $validator = $this->getValidator($request->all()); //バリデーションチェックが通らなかったらフォーム画面にリダイレクト if ($validator->fails()) { // フォーム画面ヘリダイレクト return redirect('form') ->withErrors($validator) ->withInput(); } else { // 確認画面を表示する return view('confirm');
USEにはすでにIlluminate\Http\Requestが記載されているのに、エラーメッセージが出るのがわかりません。どうすればいいでしょうか。

回答1件
あなたの回答
tips
プレビュー