Laravel 学习笔记--登陆注册

来源:互联网 发布:mac是什么意思啊 编辑:程序博客网 时间:2024/06/06 05:16

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">不一步一步重复步骤,主要遇到的问题和需要注意的事项</span>

我是使用的  php artisan make:auth  命令创建的文件,但是由于自己开始有一些乱七八糟的改动,所以相应文件也需要改动.


1  /config/auth.php

更改

 'providers' => [        'users' => [            'driver' => 'eloquent',            'model' => App\Repositories\Tables\UsersTable::class,  <strong>//更改此处路径至相应model</strong>        ],//         'users' => [//             'driver' => 'database',//             'table' => 'users',//         ],    ],

2  数据库的表

字段名需要与命令创建出的文件字段名相同,如表中必须叫 name  不能叫做user_name

html 表单如果是手动写的,也需要注意该问题.


3  model文件,如果不是使用文首命令创建出的,那么需要注意一定要implements 相应接口,因为我开发时,先手动建立了一个货物表没有implements接口但是数据已经可以正常获取,所以这里也没有implements ,所以出了问题.

<?phpnamespace App\Repositories\Tables;use Illuminate\Auth\Authenticatable;use Illuminate\Database\Eloquent\Model;use Illuminate\Auth\Passwords\CanResetPassword;use Illuminate\Foundation\Auth\Access\Authorizable;use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;class UsersTable extends Model implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract {    use Authenticatable, Authorizable, CanResetPassword;    protected $table    = 'users';    protected $fillable = [        'name',        'password',        'email',    ];}


如果是这个问题,报错类似于:

Argument 1 passed to Illuminate\Auth\Guard::login() must be an instance of Illuminate\Contracts\Auth\Authenticatable error in laravel ...

4 注册页面,点击注册后,页面不跳转 默认的 "/" 页面,只是把密码/重复密码给清空了. 这是由于

这段代码中进入到if判 断中,即验证信息出错, 抛出异常.


文件路径: 


    public function register(Request $request) {        $validator = $this->validator($request->all());        if ($validator->fails()) {            $this->throwValidationException($request, $validator);        }        Auth::guard($this->getGuard())->login($this->create($request->all()));        return redirect($this->redirectPath());    }

我在这里出错的原因是,验证逻辑中的字段名,与表单中字段名不一致 , 我把name改成来userName所以出错:

文件位置:


    protected function validator(array $data) {        return Validator::make($data, [//            'name' => 'required|max:255',//            'email' => 'required|email|max:255|unique:users',            'password' => 'required|min:6|confirmed',        ]);    }

到这里之后,我就能够正常跳转到默认的  "/" 路径下了. 







0 0
原创粉丝点击