如果使用Laravel 5.3购物车中的商品,则在登录时重定向用户

时间:2016-09-29 00:59:10

标签: laravel authentication laravel-5.3

当用户成功登录时,我想查看他们购物车的内容(我正在使用darryldecode / laravelshoppingcart),如果他们的购物车中有商品,请前往我的结帐页面。

我尝试在Http / Middleware / RedirectifAuthenticated.php下添加它,但没有运气(只是转到主页)。

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);
}
}

使用默认的LoginContoller:

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']);
  }
}

1 个答案:

答案 0 :(得分:0)

我认为Cart Class并不知道用户..

为什么在中间件中呢?你想对每个请求进行检查吗?

如果不是:应该只有一个登录路由,并且在相应的Controller / callback中使用这些行。