PHP Laravel查询数据的3种方法(附带实例)
利用模型查询数据,有 3 个常用的方法,分别是 find()、get() 和 all() 方法。下面我们分别进行讲解。
find() 方法的返回值是模型对象,如果需要将其转换为数组,可以通过调用模型对象的 toArray() 方法来实现。如果 find() 方法没有找到记录,则返回 null。
需要注意的是,find() 方法只能根据模型的主键查找。如果想要使用其他字段查找数据,可以在 find() 方法前使用 where() 方法,where() 的第 1 个参数是要查询的字段名,第 2 个参数是查询条件。如果想要指定查询的字段信息,可以使用 select() 方法。
模型的 find() 方法用于根据主键查询记录,如果不存在则返回 null,示例代码如下:
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);在上述代码中:
- 第 2 行代码用于查询主键为 4 的记录,相当于 WHERE id = 4,返回的结果是 Student 模型的实例对象,通过对象的属性可以访问字段的值;
- 第 3 行代码使用 dump() 方法输出查询的结果;
- 第 6 行代码在 find() 方法前调用 where() 方法,查询 name 值为 tom 的数据,调用 select() 方法指定查询的字段为 name 和 gender;
- 第 9 行代码用于一次性查询 id 为 1、2、3 的记录,返回的结果是对象集合,可以用 foreach 来遍历这个集合。
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() 等查询方法。