在 Laravel 中,Eloquent ORM 提供了强大的查询构建器,允许你使用流畅的接口来构建数据库查询。where
方法用于添加基本的条件,而 orWhere
方法用于添加逻辑或的条件。
where
和 orWhere
查询假设你有一个 users
表,包含 id
、name
、age
和 email
字段。你可以使用 where
和 orWhere
来组合查询条件。
<?php
use Illuminate\Database\Capsule\Manager as Capsule;
// 初始化 Eloquent
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'your_database',
'username' => 'your_username',
'password' => 'your_password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);
$capsule->setAsGlobal();
$capsule->bootEloquent();
// 示例模型
class User extends \Illuminate\Database\Eloquent\Model
{
protected $table = 'users';
}
// 查询年龄大于 18 或者名字是 "John" 的用户
$users = User::where('age', '>', 18)
->orWhere('name', 'John')
->get();
foreach ($users as $user) {
echo "ID: ". $user->id. ", Name: ". $user->name. ", Age: ". $user->age. "\n";
}
Capsule
类来初始化 Eloquent ORM 并配置数据库连接。你需要将 your_database
、your_username
和 your_password
替换为你自己的数据库信息。User
模型,它对应数据库中的 users
表。where('age', '>', 18)
:添加一个条件,筛选出年龄大于 18 的用户。orWhere('name', 'John')
:添加一个逻辑或条件,筛选出名字是 "John" 的用户。get()
:执行查询并返回结果集。foreach
循环遍历查询结果,并输出每个用户的信息。你还可以使用闭包来创建嵌套的 where
和 orWhere
条件。例如,查询年龄大于 18 且(名字是 "John" 或者邮箱包含 "example.com")的用户:
$users = User::where('age', '>', 18)
->where(function ($query) {
$query->where('name', 'John')
->orWhere('email', 'like', '%example.com%');
})
->get();
在这个示例中,使用闭包将 name
和 email
的条件组合在一起,并使用 where
方法将其与 age
条件进行逻辑与操作。