すでに認証されている場合でも、フォームからデフォルトの "/ register"にpostメソッドを実行する必要があります。Laravel 5.2デフォルト認証、認証時に登録する方法
現在のところ、私はエラーは発生しませんが、私のデータベースにはレコードがありません。
私のフォームとコードは、ログインしていないときに動作します。 どこで変更する必要がありますか? 私はそのregisterusers.phpの近くだと思うが、そのコードは全く新しいものだ。
すでに認証されている場合でも、フォームからデフォルトの "/ register"にpostメソッドを実行する必要があります。Laravel 5.2デフォルト認証、認証時に登録する方法
現在のところ、私はエラーは発生しませんが、私のデータベースにはレコードがありません。
私のフォームとコードは、ログインしていないときに動作します。 どこで変更する必要がありますか? 私はそのregisterusers.phpの近くだと思うが、そのコードは全く新しいものだ。
ゲストミドルウェアがログインしているユーザーが登録ページにアクセスできなくなるため、デフォルトではこれを行うことはできません。
AuthController
(Laravelのapp/Http/Controllers/Auth
で提供)では、ゲスト以外のユーザー(または認証されたユーザー)がアクセス可能なメソッドを指定できます。
デフォルトでは、ログインしたユーザーにはlogout
メソッドしか使用できませんが、必要に応じて追加できます。
public function __construct()
{
$this->middleware($this->guestMiddleware(), ['except' => ['logout', 'showRegistrationForm', 'register']]);
}
showRegistrationForm
register
が登録を処理し、それを永続化する責任がある、ログインページやフォームを表示する責任があります。
これは非常に簡単な解決策であり、正常に動作します! – cger
技術的には、意図したとおりに動作しています。ログインしたユーザーはユーザーを登録できないはずですが、それは理にかなっていません。
しかし、ユーザーを登録しようとする場合は、自分のコントローラー内で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();
}
は今、ちょうどそれに応じてルートを添付してください。
コードを投稿できますか?私はLaravelの新鮮なコピーを持っていないので、デフォルトをチェックする...登録コントローラとルートファイルは十分でなければならない –
あなたがそれを行う必要がある場合(あなたが求めるもの)、目的が登録する(別のユーザを追加する)場合"悪いデザイン"。再考することを検討する必要があります。 – Kyslik
ログインしたときに所有者だけが新しい人物を登録できるシステムです。SlateEntropyのソリューションが機能しました。 – cger