私はlaravelのミドルウェアに問題があります。私は登録ユーザーだけがサインインできるミドルウェアを作りたがっています。そして 'はい'私は 'php artisan makeでそれを得ることができることを知っています:私は自分のミドルウェアを作りたがっていました。私はそれが 本当に悪いです何ダッシュボードに私をリダイレクトしてもLaravelのAuthミドルウェア5.4
に署名するために働く「/ダッシュボード」のURLを入力すると は、だから私は、ミドルウェアを書いた:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class AuthUser
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(Auth::guard()->guest()) {
return redirect()->route('home');
}
return $next($request);
}
}
は、その後、カーネル内のルートにこれを追加しました。 PHP:ここ
'auth_user'=>\App\Http\Middleware\AuthUser::class
は私のルートです:
Route::get('/', function() {
return view('welcome');
})->name('home');
Route::post('/signup',[
'uses'=>'[email protected]',
'as'=>'signup'
]);
Route::post('/signin',[
'uses' =>'[email protected]',
'as' =>'signin'
]);
Route::group(['middleware'=>['auth_user']],function(){
Route::get('/dashboard',[
'uses' => '[email protected]',
'as' => 'dashboard',
]);
});
そして、私のUserControllerで:ルート/ web.phpでルートを定義するときは、「ウェブ」のミドルウェアを用意する必要はありません
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
public function getDashboard()
{
return view('dashboard');
}
public function postSignUp(Request $request)
{
$this->validate($request,[
'email' => 'email|unique:users',
'first_name'=> 'required|max:128',
'password' => 'required|min:6'
]);
$email=$request['email'];
$password=bcrypt($request['password']);
$first_name=$request['first_name'];
$surname=($request['surname']);
$user=new User();
$user->email=$email;
$user->password=$password;
$user->first_name=$first_name;
$user->surname=$surname;
$user->save();
Auth::login($user);
return redirect()->route('dashboard');
}
public function postSignIn(Request $request)
{
$this->validate($request,[
'email' => 'required|email',
'password' => 'required|min:6'
]);
if(Auth::attempt(['email' => $request['email'], 'password'
=>$request['password']]))
{
return redirect()->route('dashboard');
}
return redirect()->back();
}
}
してRoutingServiceProviderを通じてルーティング/ web.phpルートに適用されています[ 'web'は次のミドルウェアを追加するべきではありません](http://stackoverflow.com/questions/36784253/ laravel-5-2-validation-error-not-in-blade)を 'web.php'のルートに追加します。 –
私はルートから削除してもまだ動作しません – OrestKhomitskyi