📌  相关文章
📜  无需转换 laravel 即可获取原始数据 - PHP (1)

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

无需转换 Laravel 即可获取原始数据 - PHP

在 Laravel 中,我们通常使用 Eloquent ORM 来操作数据库。Eloquent 提供了非常方便的方式来查询数据库并返回查询结果对象,但是有时候我们希望获取原始的查询数据,以实现更灵活的操作。

在 Laravel 中,获取原始数据有以下几种方式:

使用 get 方法

使用 Eloquent 的 get 方法可以返回原始的查询数据,例如:

$users = DB::table('users')->get();

上面的代码会返回一个 stdClass 对象数组,每个对象代表一行记录,对象的属性名是字段名。

使用 select 方法

使用 Eloquent 的 select 方法可以返回指定字段的原始数据,例如:

$users = DB::table('users')->select('name', 'email')->get();

上面的代码只会返回 name 和 email 两个字段的原始数据。

使用 DB facade

如果需要执行复杂的原生 SQL 语句,可以使用 Laravel 的 DB facade,例如:

$results = DB::select('select * from users where id = ?', [1]);

上面的代码会执行 "select * from users where id = 1" 这个 SQL 语句,并返回结果集。

使用 PDO 对象

最后一种方法是直接获取 PDO 对象,使用 PDO 自带的方法执行原始的 SQL 语句,例如:

$pdo = DB::connection()->getPdo();
$statement = $pdo->prepare("select * from users where id = ?");
$statement->execute([1]);
$results = $statement->fetchAll(PDO::FETCH_ASSOC);

上面的代码会返回 "select * from users where id = 1" 这个 SQL 语句执行的结果集。

以上几种方式可以灵活地获取原始数据,但是需要注意的是,获取原始数据可能会导致代码不够优雅,也不够安全,需要谨慎使用。