php laravel框架中WhereRaw的含义是什么

kav*_*ish 7 php laravel

我不确定在php larvel框架中'WhereRaw'是什么.请给我一个好的,易于理解的例子.

Par*_*har 22

WhereRaw() 是Laravel查询生成器的一个函数,它将您的输入放在SQL查询的where子句中.

可以将其视为where()在插入查询之前不会处理其输入参数的函数.

请参阅以下示例:

$Query = DB::table('some_table')->where('YEAR(date)', 'YEAR(CURRENT_DATE)');
Run Code Online (Sandbox Code Playgroud)

在这个Laravel将解决你的参数来构建一个查询.这将导致以下查询,因为您的输入将被视为一些field及其value:

SELECT * FROM `some_table` WHERE `YEAR(date)` = `YEAR(CURRENT_DATE)`
Run Code Online (Sandbox Code Playgroud)

这是不希望的.

现在,如果你使用whereRaw像:

$Query = DB::table('some_table')->whereRaw('YEAR(date) = YEAR(CURRENT_DATE)');
Run Code Online (Sandbox Code Playgroud)

现在,Laravel将这个where子句放在查询中,如下所示:

SELECT * FROM `some_table` WHERE YEAR(date) = YEAR(CURRENT_DATE)
Run Code Online (Sandbox Code Playgroud)

希望它有所帮助(:


May*_*eyz 13

WhereRaw:有时您可能需要在查询中使用原始表达式.这些表达式将作为字符串注入查询.

如果您无法通过流畅的界面生成所需的查询,请随意使用 whereRaw()

例如:

$users = User::whereRaw('age > ? and votes = 100', array(25))->get();
Run Code Online (Sandbox Code Playgroud)

这相当于:

"SELECT * FROM users WHERE age > 25 AND votes = 100";
Run Code Online (Sandbox Code Playgroud)

参考


小智 6

在laraval 中,我们使用查询构建器。但有时您需要执行原始 sql 查询。

所以你可以whereRaw像这个例子一样注入它:

whereRAW('YEAR(event_datetime) =?', [$year])
Run Code Online (Sandbox Code Playgroud)