php - Laravel 5.2 Auth not working

时间:2016-02-29 09:19:07

标签: php authentication laravel-5.1 laravel-5.2

我想让身份验证用户登录并在laravel中注册。但是当我提交保存注册信息时......它正在显示

  

找不到对象!

     

在此服务器上找不到请求的URL。关于的链接   引用页面似乎是错误的或过时的。请通知作者   该页面的错误。       如果您认为这是服务器错误,请与网站管理员联系。

这是我的authController:

<?php

namespace App\Http\Controllers\Auth;

use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;

class AuthController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Registration & Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users, as well as the
    | authentication of existing users. By default, this controller uses
    | a simple trait to add these behaviors. Why don't you explore it?
    |
    */

    use AuthenticatesAndRegistersUsers, ThrottlesLogins;

    /**
     * Where to redirect users after login / registration.
     *
     * @var string
     */


    /**
     * Create a new authentication controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest', ['except' => 'logout']);
    }

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|max:255',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|confirmed|min:6',
        ]);
    }


    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }

    protected function getLogin() {
        return View('auth.login');
    }

    protected function postLogin(LoginRequest $request) {
        if ($this->auth->attempt($request->only('email', 'password'))) {
                return redirect()->route('/');
          //  return view('course.index');
        }

        return redirect('auth/login')->withErrors([
            'email' => 'The email or the password is invalid. Please try again.',
        ]);
    }

    /* Register get post methods */
    protected function getRegister() {
        return View('auth.register');
    }

    protected function postRegister(RegisterRequest $request) {
        $this->user->name = $request->name;
        $this->user->email = $request->email;
        $this->user->password = bcrypt($request->password);
        $this->user->save();
        return redirect('auth.login');
    }


  protected function getLogout()
    {
        $this->auth->logout();
        return redirect('auth.login'); 
    } 
    protected $redirectTo = '/course';
    protected $loginPath = '/auth/login';

}

这是我的login.blade.php文件:

    <form method="POST" action="/auth/login">
        {!! csrf_field() !!}

        <div>
            Email
            <input type="email" name="email" value="{{ old('email') }}">
        </div>

        <div>
            Password
            <input type="password" name="password" id="password">
        </div>

        <div>
            <input type="checkbox" name="remember"> Remember Me
        </div>

        <div>
            <button type="submit">Login</button>
        </div>
    </form>

Here is my register.blade.php file

<form method="POST" action="/auth/register">
    {!! csrf_field() !!}

    <div>
        Name
        <input type="text" name="name" value="{{ old('name') }}">
    </div>

    <div>
        Email
        <input type="email" name="email" value="{{ old('email') }}">
    </div>

    <div>
        Password
        <input type="password" name="password">
    </div>

    <div>
        Confirm Password
        <input type="password" name="password_confirmation">
    </div>

    <div>
        <button type="submit">Register</button>
    </div>
</form>

这是routes.php

<?php

/*
|--------------------------------------------------------------------------
| Routes File
|--------------------------------------------------------------------------
|
| Here is where you will register all of the routes in an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/

Route::get('/', function () {
    return view('welcome');
});

Route::get('/all_user',function(){
    return view('all_user');
});

Route::get('all_user/{id}/{name}',function($id,$name){      // Here we pass the peremeter in url all_user
    return 'User '.$id." ".$name;                         // with the parameter id and name
});

Route::get('home','basicController@index'); // Here Home is the URL and it 
                                            //execute the basiccontroller index page
Route::get('about','basicController@about');

Route::resource('course','courseController');

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| This route group applies the "web" middleware group to every route
| it contains. The "web" middleware group is defined in your HTTP
| kernel and includes session state, CSRF protection, and more.
|
*/


Route::group(['middleware' => ['web']], function () {
   Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');

// Registration routes...
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::post('auth/register', 'Auth\AuthController@postRegister');
});

1 个答案:

答案 0 :(得分:0)

在您的视图中

登录:

{{ !! Form::open(array('route'=>route('auth.login'))) !!}}

注册:

{{ !! Form::open(array('route'=>route('auth.register'))) !! }}

在你的路线

登录

Route::post('auth/login', array('as'=>'auth.login','uses'=>'Auth\AuthController@postLogin'));

注册

Route::post('auth/register', array('as'=>'auth.register','uses'=>'Auth\AuthController@postRegister'));

不要忘记关闭你的表格:

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