使用Laravel Raw查询和占位符

时间:2014-12-09 13:27:27

标签: php mysql laravel

我在我的模型中有这个查询:

型号:

 class Webmasters {
      public static function webmasters($filt, $cat) {
         $top_pages = DB::table('web.tools')
                ->where('filter',$filt)
                ->where('category', $cat)
                ->limit(20)->get();
         return $top_pages;
}

变量 $ filt $ cat 作为参数从控制器传递。

我想使用这样的查询:

 class Webmaster {
      public static function webmasters($filt, $cat) {
         $top_pages = DB::select(DB::raw("SELECT *
                                         FROM web.tools
                                         WHERE filter = $filt
                                         WHERE category = $cat
                                         LIMIT 20"));
          return $top_pages;
       }
 }

我现在不知道如何在第二个查询中使用这些占位符。第一个就像一个魅力,但第二个给我一个SQL错误,因为占位符 $ filt $ cat

1 个答案:

答案 0 :(得分:2)

您可以传递一组参数以绑定到选择。

 class Webmaster {
      public static function webmasters($filt, $cat) {
         $top_pages = DB::select(DB::raw("SELECT *
                                         FROM web.tools
                                         WHERE filter = :filter
                                         AND category = :category
                                         LIMIT 20"), [
                                             ':filter' => $filt,
                                             ':category' => $cat
                                         ]);
          return $top_pages;
       }
 }