2016-09-29 16 views
0

を使用してカートに入れたアイテムのログイン時にユーザーをリダイレクトするユーザーが正常にログインすると、カートの内容を確認したい(私はdarryldecode/laravelshoppingcartを使用している)私のチェックアウトページに。Laravel 5.3

私はHttp/Middleware/RedirectifAuthenticated.phpの下でこれを追加しようとしましたが、運はありません(ちょうどホームページに行く)。

デフォルトLoginContoller使用
namespace App\Http\Middleware; 

use Closure; 
use Illuminate\Support\Facades\Auth; 

class RedirectIfAuthenticated 
{ 
public function handle($request, Closure $next, $guard = null) 
{ 
    if (Auth::guard($guard)->check()) { 
     //return redirect('/'); 
     if(\Cart::getTotalQuantity() > 0) { 
      return redirect('/checkout'); 
     } else { 
      return redirect()->intended('/'); 
     } 
    } 
    return $next($request); 
} 
} 

:私のテイクがカートクラスdoesntのは、ユーザーが知っていることである

namespace App\Http\Controllers\Auth; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\AuthenticatesUsers; 
class LoginController extends Controller 
{ 
    use AuthenticatesUsers; 
    /** 
    * Where to redirect users after login. 
    * 
    * @var string 
    */ 
    protected $redirectTo = '/home';   
    /** 
    * Create a new controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
    $this->middleware('guest', ['except' => 'logout']); 
    } 
} 
+0

このクラスを使用してホームページにリダイレクトしていますか?たぶんdd(\ Cart :: getTotalQuantity()); - > check()if文で、出力が何であるかを確認して、カートを認識しているかどうかを判断できます。 – Brett

答えて

0

を...

なぜミドルウェアでそれを行いますか?すべてのリクエストでそのチェックをしたいですか?

そうでない場合:正確に1つのログインルートがあり、対応するコントローラ/コールバックにこれらの行を使用する必要があります。

+0

私はLaravel 5.3に最新の認証を使用していますが、ログイン、ログアウトなどの唯一のルートはRoute :: auth()です。私は既定のLoginControllerを使用しています(上記の編集で追加します)。 –