在where子句中使用变量

时间:2014-05-16 00:11:03

标签: php laravel

现在我在 app / routes.php

中定义了这个
View::share('user_image_count', Items::where('user_id', '=', 1)->count());

它返回数字9,正如我想要的那样。

我想使其动态化,因此它基于登录/验证的用户的user_id。

我目前在我的观点中使用它:

{{ Auth::user()->user_id }}

如何在routes.php中调整我的查询,以便它使用经过身份验证的用户的ID号?

3 个答案:

答案 0 :(得分:0)

您是否尝试过以下操作?

if (Auth::check())
{
    $user_id     = Auth::user()->user_id;
    $items_count = Items::where('user_id', '=', $user_id)->count();

    View::share('user_image_count', $items_count);
}

我相信它应该有用。

答案 1 :(得分:0)

您可以尝试这样的事情:

View::share('user_image_count', function(){
    return Auth::check() ? 
           Items::where('user_id', '=', Auth::user()->user_id)->count() : '';
});

在您看来:

{{ $user_image_count() }}

答案 2 :(得分:0)

我认为你可以通过助手类更好地做到这一点。

让我们说助手为班级    

 class Helper{
   public static function GetUserCount($user_id){

       return View::share('user_image_count', Items::where('user_id',$user_id)->count());

   }

}

并在您的视图中调用此类并将user_id传递给它

Echo this in view {{Helpers::GetUserCount(Auth::user()->user_id)}}

因此,对于所有登录用户来说,它都是动态的