2016-04-22 146 views
1

我需要能够做一个post方法默认的“/注册”从一个窗体,即使当我已经通过身份验证。Laravel 5.2默认认证,如何注册时认证

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

我的表单和代码在im未登录时起作用 我需要在哪里进行更改才能使用? 我认为它的registersusers.php附近,但代码对我来说是全新的。

+0

你能发表一些代码吗?我没有新的Laravel副本来检查默认值...注册控制器和路由文件应该足够了 –

+0

如果您需要这样做(您要求)并且目的是注册(添加另一个用户) “糟糕的设计”。你应该考虑重新思考。 – Kyslik

+0

其系统中只有拥有者可以在他登录时注册新用户.SlateEntropy的解决方案可以工作。 – cger

回答

1

默认情况下,您不能这样做,因为访客中间件在用户访问注册页面时停止记录。

在您的AuthController(由Laravel在app/Http/Controllers/Auth中提供)中,您可以指定哪些方法应该可供非客人(或经过验证的用户)访问。

默认情况下,只有logout方法可用于登录用户,但是您可以添加任何您想要的。

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

showRegistrationForm是负责显示登录页面和表格,register负责处理注册和持续它。

+1

这是一个非常简单的解决方案,它工作正常! – cger

0

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

但是,您可以简单地在您自己的控制器中使用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(); 
} 

现在只需相应附上您的路线。