PHP Laravel框架中的whereRaw是什么意思



我不确定PHP Laravel框架中的whereRaw是什么。你能提供好的和易于理解的例子吗?

WhereRaw()

Laravel查询生成器的一个函数,它将您的输入按原样放入SQL查询的where子句中。

将其视为where()函数,其输入参数在插入查询之前不会被处理。

请参阅以下示例:

$Query = DB::table('some_table')->where('YEAR(date)', 'YEAR(CURRENT_DATE)');

在此,Laravel将解决您的参数以构建查询。这将导致以下查询,因为您的输入将被视为某些field及其value

SELECT * FROM `some_table` WHERE `YEAR(date)` = `YEAR(CURRENT_DATE)`

这是不希望的。

现在,如果您使用如下whereRaw

$Query = DB::table('some_table')->whereRaw('YEAR(date) = YEAR(CURRENT_DATE)');

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

SELECT * FROM `some_table` WHERE YEAR(date) = YEAR(CURRENT_DATE)

希望它有帮助(:

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

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

前任:

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

等于:

"SELECT * FROM users WHERE age > 25 AND votes = 100";

参考

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

因此,您可以将其注入whereRaw如下例:

whereRAW('YEAR(event_datetime) =?', [$year])

最新更新