2017-07-12 4 views
0

アカウントにログインしている間に別のアカウントを作成したいと考えています。私は何を編集するのか分からないので何も編集しませんでした。ログインしているときにユーザーを作成する方法Laravel 5.4?

お願いします。ありがとうございました。

は、ここに私のRegisterController.php

<?php 

namespace App\Http\Controllers\Auth; 

use App\User; 
use App\Http\Controllers\Controller; 
use Illuminate\Support\Facades\Validator; 
use Illuminate\Foundation\Auth\RegistersUsers; 

class RegisterController extends Controller 
{ 
/* 
|-------------------------------------------------------------------------- 
| Register Controller 
|-------------------------------------------------------------------------- 
| 
| This controller handles the registration of new users as well as their 
| validation and creation. By default this controller uses a trait to 
| provide this functionality without requiring any additional code. 
| 
*/ 

use RegistersUsers; 

/** 
* Where to redirect users after registration. 
* 
* @var string 
*/ 
protected $redirectTo = '/dashboard'; 

/** 
* Create a new controller instance. 
* 
* @return void 
*/ 
public function __construct() 
{ 
    $this->middleware('guest'); 
} 

/** 
* Get a validator for an incoming registration request. 
* 
* @param array $data 
* @return \Illuminate\Contracts\Validation\Validator 
*/ 
protected function validator(array $data) 
{ 
    return Validator::make($data, [ 
     'name' => 'required|string|max:255', 
     'email' => 'required|string|email|max:255|unique:users', 
     'password' => 'required|string|min:6|confirmed', 
    ]); 
} 

/** 
* Create a new user instance after a valid registration. 
* 
* @param array $data 
* @return User 
*/ 
protected function create(array $data) 
{ 
    return User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
    ]); 
} 
} 

だ、これはあなたがあなたの認証でこれを追加することができます

をLaravel 5.4を使用している場合router.php

public function auth() 
{ 
    // Authentication Routes... 
    $this->get('login', 'Auth\[email protected]')->name('login'); 
    $this->post('login', 'Auth\[email protected]'); 
    $this->post('logout', 'Auth\[email protected]')->name('logout'); 

    // Registration Routes... 
    $this->get('register', 'Auth\[email protected]')->name('register'); 
    $this->post('register', 'Auth\[email protected]'); 

    // Password Reset Routes... 
    $this->get('password/reset', 'Auth\[email protected]')->name('password.request'); 
    $this->post('password/email', 'Auth\[email protected]')->name('password.email'); 
    $this->get('password/reset/{token}', 'Auth\[email protected]')->name('password.reset'); 
    $this->post('password/reset', 'Auth\[email protected]'); 
} 
+0

どのバージョンのlaravelを使用していますか? –

答えて

2

新しいコントローラを作成できます。

UserController.php

public function create(Request $request) 
{ 
    return User::create([ 
    'name' => $request->name, 
    'email' => $request->email, 
    'password' => bcrypt($request->password), 
    ]); 

return //whatever 
} 
1

での認証ルートであります/ RegisterController

public function __construct() 
{ 
    $this->middleware('auth'); 
} 

ユーザーは登録する前にログインする必要があります。

+0

ありがとうございました! – eibersji

+0

うれしかった – Demonyowh

1

あなたが「RegisterController」を変更し、ここでそれを行う方法だにしていないしたい場合は、カスタムコントローラを作成することができます。

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

//use Auth 
use Illuminate\Support\Facades\Auth; 
use Illuminate\Support\Facades\Hash; 
use App\User; 

class UserController extends Controller 
{ 
    public function __construct() 
    { 
     // check if user is logged in, if not then redirect them to the login page 
     $this->middleware('auth'); 
    } 

    public function registerUser(Request $request){ 
     // assume data validation here 

     //save user to database 
     $user = new User(); 
     $user->email = $request->email; 
     $user->password = Hash::make($request->password); 
     $user->save(); 

     return //return whatever 
    } 

} 
関連する問題