即使我已经通过身份验证,我也需要能够从表单对默认的"/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();
}
现在只需相应地附加您的路线即可。