我通过从表中获取值在共享视图中传递值。我需要知道用户ID,但Auth::check()
返回false。我该怎么做?以下是代码:
public function boot()
{
$basket_count = 0;
if (Auth::check()) { //always false
$loggedin_user_id = Auth::user()->id;
$basket_count = Cart::getBasketCount();
}
view()->share('basket_count', $basket_count);
}
答案 0 :(得分:2)
确定ServiceProviders
不适用于此类事情。最好的是Middleware
。因此,如果要调用Auth,请创建中间件并将值传递给视图。
public function handle($request, Closure $next)
{
$basket_count = 0;
if ($this->auth) { //always false
$loggedin_user_id = $this->auth->user()->id;
$basket_count = Cart::getBasketCount($loggedin_user_id);
}
view()->share('basket_count', $basket_count);
return $next($request);
}
答案 1 :(得分:0)
您可以直接在控制器文件中使用身份验证。在中间件中添加它是一种更简洁的身份验证方式。
例如。在CategoriesController.php
中...
class CategoryController扩展Controller {
/** * CategoryController constructor. */ public function __construct() { $this->middleware('auth'); }
...
如果你想看一个完整的例子 http://deepdivetuts.com/basic-create-edit-update-delete-functionality-laravel-5-3