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。

您可以在以下位置查看所有代码: 此链接

4

1 回答 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

在表单中显示验证错误。

编辑

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

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

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

于 2014-10-14T08:04:42.303 回答