-->

Laravel 5 InvalidArgumentException in FileViewFind

2020-08-11 11:40发布

问题:

This is student.php and my function for admin:

 public function admin(Request $request){

       if($request->isMethod('get')){
       return \View::make('/admin');
    }
       else
        {

                 $UserData['email'] = Input::get('username');
                 $UserData['password'] = Input::get('password');
                 User::create($UserData);
                 return 'admintest';
                 //return Redirect::to('/view');
         }
   }   

routes.php

      Route::match(['get', 'post'], '/admin', 'student@admin');

This is admin form:

     {!! Form::open(array('url' => '/admin')) !!}
  <input type="hidden" name="_token" value="{{ csrf_token() }}">


    User Name:<br />
      <input name="username" type="text" id="username" size="40" />
    <br /><br />
    Password:<br />
   <input name="password" type="password" id="password" size="40" />
   <br />
   <br />
   <br />

     <input type="submit" name="button" id="button" value="Log In" />


  {!! Form::close() !!}

Don't know why showing error:

InvalidArgumentException in FileViewFinder.php line 137: View [.] not found

回答1:

A view should an extension .blade.php.

So your file that has the admin form should have the name admin.blade.php

Note :

If you have the view under any sub directory like somefolder/admin.blade.php

Then you should do like this

return \View::make('somefolder/admin');

Learn more about templating here :)



回答2:

If you recently deployed you project to your production server or moved the project to another server, do not forget to clear the app cache by running these commands.

php artisan cache:clear
php artisan view:clear
php artisan config:cache

it should fix it.

Also consider updating your .env file to match new environment variables.



回答3:

If any of the answers above do not work. why don't you try modifying the name of config.php project/bootstrap/cache/config.php to another name like config.php.old it worked for me with laravel 5.3



回答4:

I had the same problem because I had a backslash \, the solution was change it to slash:

return \View::make('folder/admin');


回答5:

You don't want to reference your views beginning with a slash.

This:

return \View::make('/admin');

Should look like:

return \View::make('admin');



回答6:

Please check first that folder is under views folder i.e resources/views/foldername/filename

then you can test

Route::get('route_name', function () {
    return view('foldername.file_name');
});


回答7:

Laravel has an authentication skeleton generator which might have been previously used prior to your current state in your project. I had this error and I was coming from a git clone that had Laravel extra's omitted from sharing good practices.

By reissuing the command

php artisan make:auth

https://laravel.com/docs/5.6/authentication#introduction