📌  相关文章
📜  如何从 laravel 中的表中获取数据 - PHP (1)

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

如何从 Laravel 中的表中获取数据

在 Laravel 中,我们可以使用 Eloquent ORM 来获取数据库表中的数据。ORM(对象关系映射)是一种编程技术,它将数据库中的表转换为对象,我们可以像使用对象一样操作这些数据。

配置数据库连接

首先,我们需要在 .env 文件中配置数据库连接信息。打开 .env 文件并设置相应的值:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
创建模型

现在我们需要创建一个模型来映射数据库中的表。使用以下命令创建一个模型和对应的迁移:

php artisan make:model YourModelName -m

这将创建一个名为 YourModelName 的模型和一个对应的数据库迁移文件。打开迁移文件并定义表结构。例如,如果我们要创建一个名为 users 的表,我们可以执行以下操作:

Schema::create('users', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('email')->unique();
    $table->timestamp('email_verified_at')->nullable();
    $table->string('password');
    $table->rememberToken();
    $table->timestamps();
});

在模型中,我们需要定义表名和可填充字段:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class YourModelName extends Model
{
    protected $table = 'your_table_name';

    protected $fillable = ['foo', 'bar'];
}

$fillable 属性指定哪些列可以在模型中被注入。

从数据库中获取数据

现在我们已经配置好了数据库连接和模型,让我们来看看如何从数据库中获取数据。我们可以使用 YourModelName 模型类的 all() 方法来返回数据库中的所有记录:

$users = YourModelName::all();

我们可以使用 find() 方法来根据 ID 获取单个记录:

$user = YourModelName::find(1);

我们还可以使用 where() 方法来查找符合特定条件的记录。例如,以下代码将返回 email 列等于 johndoe@example.com 的所有记录:

$users = YourModelName::where('email', 'johndoe@example.com')->get();

我们可以使用查询构造器来进一步构建查询:

$users = YourModelName::where('age', '>', 18)
                ->where('email', 'like', '%example.com')
                ->orderBy('age', 'desc')
                ->get();

以上代码将返回 age 列大于 18 年且 email 列以 example.com 结尾的记录,并按 age 列降序排序。

结论

通过使用 Eloquent ORM,我们可以轻松地从 Laravel 中的数据库表中获取数据。使用模型和查询构造器,我们可以构建灵活的查询来获取符合特定条件的记录。