首页 文章

Laravel 5中的登录和注册表

提问于
浏览
4

我开始学习一个新的laravel并尝试通过构建小项目来学习它,以创建我的初学者站点,但我遇到了问题 . 我只创建没有任何插件的新项目 . 我的登录和注册表格有问题 . 我把它放到路线文件中:

get('user/login', 'Auth\AuthController@showLoginForm');
post('user/login', 'Auth\AuthController@postLogin');
get('user/register', 'Auth\AuthController@showRegistrationForm');
post('user/register', 'Auth\AuthController@register');

并登录并注册表格 . 它向我展示了一个表单,但我无法提交它,我不知道如何插入数据库或如何验证用户凭据 . 你能告诉我如何在新的beta Laravel框架中做到这一点吗?

问题是Laravel向我显示了登录和注册表单 . 但是当我点击提交时它没有做任何事情,只刷新页面 . 我将method =“POST”action =“”放入表单中 . 当我改变

public function register(RegisterRequest $request)

public function register()

在App \ Http \ Controllers \ Auth \ AuthController中,当我提交表单时,它会给我一个错误,即$ request无法找到 .

你可以看到所有代码:this link

1 回答

  • 1

    当您使用请求时,这就是它在Laravel 5中的工作方式 . 如果以这种方式注入Request对象:

    public function register(RegisterRequest $request) {
       // your code goes here
    }
    

    RegisterRequest 验证您的数据成功之前,不会执行此函数的代码 .

    看看你的规则:

    return [
            'email' => 'required|email|unique:users',
            'password' => 'required|confirmed|min:8',
       ];
    

    您需要确保您的数据通过这些规则 .

    您还应该在表单中添加显示错误:

    @foreach ($errors->all() as $error)
     {{ $error }}
    @endforeach
    

    以表格形式显示验证错误 .

    EDIT

    代码中的一切似乎都很好 . 正在启动有效功能 . 如果您不相信我,请将 register 功能更改为:

    public function register()
    {
       return "This is register function";
    }
    

    您得到的错误是因为如果从函数参数中删除 RegisterRequest $request ,则以后不能使用 $request->email; ,因为它未定义

相关问题