在雄辩的laravel中编写原始查询

时间:2017-09-29 13:22:06

标签: php mysql laravel laravel-eloquent

嗨我在laravel中有一个查询范围,我有一个名为km的列varchar。现在我想为它编写一个原始查询范围。问题是它不会搜索varchar。所以需要将km转换为无符号。

查询 - :

Product::km($kmFrom, $kmTo);

查询范围

public function scopeKm($query, $kmFrom, $kmTo)
{   
    $kmFrom = (int)$kmFrom;
    $kmTo = (int)$kmTo;

    if((count($kmFrom) > 0) && count($kmTo) > 0){ 

        return $query->whereBetween('km', [$kmFrom, $kmTo]);   
    }
    return $query;
}

我想编写上面的db raw查询,我在其中将km列转换为原始查询中的unsigned。

2 个答案:

答案 0 :(得分:0)

您可以编写原始查询,执行以下操作:

DB::select("SELECT * FROM table_name);

答案 1 :(得分:0)

使用原始查询的语法

 $result_1 = DB::table('tablename')->whereRaw("column name =".$variable)->select('name','improve','email',DB::raw("DATEDIFF('2016-11-10' , `age`) / 365.25 as age"),'age as dob')->first();

或者如果想要完全原始的那么

DB::select("SELECT * FROM tablename where 1);
希望它会对你有所帮助!