当用户成功登录时,我想查看他们购物车的内容(我正在使用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']);
}
}
答案 0 :(得分:0)
我认为Cart Class并不知道用户..
为什么在中间件中呢?你想对每个请求进行检查吗?
如果不是:应该只有一个登录路由,并且在相应的Controller / callback中使用这些行。