首页 > 编程笔记 > PHP笔记 阅读:3

PHP Laravel查询数据的3种方法(附带实例)

利用模型查询数据,有 3 个常用的方法,分别是 find()、get() 和 all() 方法。下面我们分别进行讲解。

Laravel find()方法

find() 方法用于通过主键查找数据库中的记录,语法格式如下:
$查询结果 = 模型名::find($id);
在上述语法格式中,find() 方法中的 $id 表示数据表中的主键,即 id 值。当需要一次查询多个 id 的数据时,可以传入多个 id 组成的数组。

find() 方法的返回值是模型对象,如果需要将其转换为数组,可以通过调用模型对象的 toArray() 方法来实现。如果 find() 方法没有找到记录,则返回 null。

需要注意的是,find() 方法只能根据模型的主键查找。如果想要使用其他字段查找数据,可以在 find() 方法前使用 where() 方法,where() 的第 1 个参数是要查询的字段名,第 2 个参数是查询条件。如果想要指定查询的字段信息,可以使用 select() 方法。

模型的 find() 方法用于根据主键查询记录,如果不存在则返回 null,示例代码如下:
// 查询主键为4的记录,返回模型对象
$student = Student::find(4);
dump($student->name);  // 获取name字段的值
dump($student->toArray());  // 将模型对象转换为数组
// 添加查询条件,返回name和gender字段
$student = Student::where('name', 'tom')->select('name', 'gender')->find(1);
dump($student);
// 查询主键为1、2、3的记录,返回对象集合
$students = Student::find([1, 2, 3]);
dump($students);
在上述代码中:

Laravel get()方法

模型的 get() 方法返回的结果是对象集合,示例代码如下:
$students = Student::where('id', '1')->get();
dump(get_class($students[0]));  // 输出结果:"App\Models\Student"
在上述代码中,使用 get_class() 函数获取一个对象的类名。从输出结果可以看出,获取到的是 App\Models\Student 类对象。

Laravel all()方法

模型的 all() 方法用于查询表中所有的记录,返回模型对象集合,示例代码如下:
// 查询所有记录,返回对象集合
$students = Student::all();
dump($students);
// 查询所有记录的name和age字段,返回对象集合
$students = Student::all(['name', 'gender']);
dump($students);
需要注意的是,在all()方法的前面不能调用 where()、select() 等查询方法。

相关文章