📜  where () laravel Eloquent - PHP (1)

📅  最后修改于: 2023-12-03 15:05:56.277000             🧑  作者: Mango

Laravel Eloquent中的where()

Laravel是一个流行的PHP框架,它使用Eloquent ORM(对象关系映射)来访问数据库。在Eloquent ORM中,使用where()方法可以过滤搜索结果。

基本语法

where()方法用于根据给定条件过滤模型实例。它的基本语法如下:

$models = Model::where('column', 'operator', 'value')->get();

where()方法接受三个参数:

  • 第一个参数是要过滤的数据库列的名称。
  • 第二个参数是比较运算符,如=<>>>=<<=
  • 第三个参数是要匹配的值。

此外,您还可以使用多个where()方法来进一步过滤结果:

$models = Model::where('column1', 'value1')
                ->where('column2', 'operator', 'value2')
                ->get();

这将使用多个条件来查询模型实例。

比较运算符

以下是可用的比较运算符及其用途:

  • =(等于):检查值是否等于指定值。
  • <>(不等于):检查值是否不等于指定值。
  • >(大于):检查值是否大于指定值。
  • >=(大于等于):检查值是否大于或等于指定值。
  • <(小于):检查值是否小于指定值。
  • <=(小于等于):检查值是否小于或等于指定值。
  • like(包含):检查值是否包含指定字符串。
参数绑定

使用上述方式指定参数值时,应该避免使用直接将数据输入到查询当中,而是使用“参数绑定”。这是一种在进行数据库调用时遵循的最佳实践,可防止SQL注入攻击,并提高性能。

要使用参数绑定,请将参数名称作为:name格式的字符串传递,并使用Eloquent的where()方法的第二个参数指定运算符和绑定名称:

$models = Model::where('column', 'operator', $value)->get();

然后,在查询中使用$value变量来代替实际值。

返回的结果

where()方法返回一个Eloquent Collection,其包含符合查询条件的模型实例。可以使用该集合上的各种方法来进一步处理结果,如first()count()pluck()sum()等。

下面是一个例子,演示如何使用where()方法来查询“users”表中的所有账户状态为“active”的用户:

$users = User::where('status', '=', 'active')->get();

foreach ($users as $user) {
    echo $user->name;
}
总结

where()方法是Eloquent ORM中非常有用的方法,用于创建可读性强的查询语句。它可以用来过滤数据库记录,并返回符合条件的模型实例。此外,由于支持参数绑定,where()方法还有助于提高应用程序的安全性和性能。