Laravel 5.2默认身份验证,身份验证时如何注册


Laravel 5.2 default auth, how to register when authenticated

即使我已经通过身份验证,我也需要能够从表单对默认的"/register"执行 post 方法。

目前不可能,我没有收到任何错误,但我的数据库中没有记录。

我的表单和代码在 im 未登录时有效。我需要在哪里进行更改才能正常工作?我认为它靠近注册用户.php但该代码对我来说是全新的。

默认情况下,您无法执行此操作,因为来宾中间件会阻止登录用户访问注册页面。

在您的AuthController(由Laravel在app/Http/Controllers/Auth中提供)中,您可以指定哪些方法应保留对非来宾(或经过身份验证的用户)的访问。

默认情况下,只有logout方法可供登录用户使用,但您可以根据需要添加更多方法。

public function __construct()
{
    $this->middleware($this->guestMiddleware(), ['except' => ['logout', 'showRegistrationForm', 'register']]);
}

showRegistrationForm负责显示登录页面和表单,register负责处理注册并保留它。

从技术上讲,它按预期工作。登录用户不应该能够注册用户,这没有意义。

但是,您只需在自己的控制器中使用RegistersUsers特征即可尝试注册用户。就这么简单:

namespace App'Http'Controllers;
use Illuminate'Http'Request;
class RegistrationController extends Controller {
    uses RegistersUsers;
    public function create(Request $request){
        return $this->postRegister($request);
    }
}

->postRegister()方法由RegistersUsers性状提供。它接受'Illuminate'Http'Request对象并作为依赖项注入,因此您只能传递 'Illuminate'Http'Request 的实例。您也可以通过简单地调用$this->showRegistrationForm();轻松显示registration表单,例如:

public function show(){
    return $this->getRegister();
}

现在只需相应地附加您的路线即可。