数据库:查询构造器
简介
Laravel 的数据库查询构造器提供了方便、流畅的接口,以用来创建及运行数据库查询。可用来执行应用程序中的大部分数据库操作,且能在所有被支持的数据库系统中使用。
Laravel 的查询构造器使用 PDO 参数绑定,以保护你的应用程序不受数据库注入攻击。在传入字符串作为绑定前不需要先清理它们。
获取结果
从数据表中获取所有的数据列
若要开始进行查找,可在 DB
facade 上使用 table
方法。table
方法会针对指定的数据表返回一个查询构造器实例,允许你在查询时链式调用更多约束,并使用 get 方法得到最终结果:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* Show a list of all of the application's users.
*
* @return Response
*/
public function index()
{
$users = DB::table('users')->get();
return view('user.index', ['users' => $users]);
}
}
get
方法会返回一个 Illuminate\Support\Collection
结果,其中每一个结果都是 PHP StdClass
对象的实例。你可以将列作为对象的属性来访问每个列的值:
foreach ($users as $user) {
echo $user->name;
}
从数据表中获取单个列或行
若你只需从数据表中取出单行数据,则可以使用 first
方法。这个方法会返回单个 StdClass
对象:
$user = DB::table('users')->where('name', 'John')->first();
echo $user->name;
若你不想取出完整的一行,则可以使用 value
方法来从单条记录中取出单个值。这个方法会直接返回字段的值:
$email = DB::table('users')->where('name', 'John')->value('email');