📜  Laravel-使用数据库(1)

📅  最后修改于: 2023-12-03 14:43:51.176000             🧑  作者: Mango

Laravel-使用数据库

Laravel是一款最流行的 PHP Web 框架之一,带有优雅的语法和强大的工具。在Laravel中,我们可以很方便地使用数据库进行数据存储和读取。本文将介绍如何在Laravel中使用数据库。

数据库配置

在使用Laravel进行数据存储之前,我们需要先进行数据库的配置。Laravel默认使用的是MySQL数据库,当然也支持其他类型的数据库。在 .env 文件中进行数据库的配置,如下:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database_name
DB_USERNAME=database_username
DB_PASSWORD=database_password

可以看出,需要配置的包括数据库的连接类型、主机地址、端口号、数据库名、用户名、密码等。

数据库迁移

数据库迁移是Laravel中很重要的一部分,它允许我们通过编写代码来管理数据库模式的变化,而无需手动编辑数据库。Laravel中使用Artisan命令来创建和运行数据库迁移:

创建迁移
php artisan make:migration create_users_table --create=users

运行该命令后,Laravel会在 database/migrations 目录下创建一个迁移文件,可以在文件中定义要创建或修改的表以及相关字段:

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

可以看到,在 up 方法中,我们定义了 users 表,并创建了相关的字段,如 idnameemailpassword 等。在 down 方法中,则是用来撤销迁移操作的。而在 up 方法中创建的表,在运行 down 方法后会被删除。

执行迁移

编写好迁移代码后,我们需要使用Artisan命令来执行迁移,如下:

php artisan migrate

运行该命令后,Laravel会自动执行我们编写的迁移,并将其记录在 migrations 表中。

数据库操作

经过上述配置和迁移后,我们可以直接使用Laravel中提供的 DB 类来进行数据库的操作。Laravel中的 DB 类为我们提供了一些操作数据库的方法,如 selectinsertupdatedelete 等等,可以满足我们日常的需求。

查询数据
$users = DB::select('select * from users where id = ?', [1]);

上述代码表示从 users 表中查询 id1 的记录。在查询时,可以使用 select 方法,并传入SQL查询语句,以及查询参数。

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

Laravel还提供了更加优雅的查询方式,即 查询构造器。通过查询构造器,我们可以更加方便地从数据库中读取数据。上述代码中,使用了 table 方法来指定要查询的表名,并使用 get 方法来获取所有数据,也可以使用其他的方法,如 whereorderBy 等等,来进一步筛选和排序数据。

插入数据
DB::insert('insert into users (name, email, password) values (?, ?, ?)', ['John Doe', 'johndoe@example.com', 'password']);

通过 insert 方法,我们可以向数据库中插入数据,需要传入SQL插入语句以及插入的数据。

DB::table('users')->insert([
    'name' => 'John Doe',
    'email' => 'johndoe@example.com',
    'password' => bcrypt('password'),
]);

在使用查询构造器时,插入数据也非常方便,可以直接使用 insert 方法,并传入要插入的数据。

更新数据
DB::update('update users set name = ? where id = ?', ['John Doe', 1]);

通过 update 方法,我们可以更新数据库中的数据,需要传入SQL更新语句以及更新的数据。

DB::table('users')->where('id', 1)->update(['name' => 'John Doe']);

使用查询构造器则更加简单,可以使用 where 方法指定要更新的数据,然后调用 update 方法,传入想要更新的字段和值即可。

删除数据
DB::delete('delete from users where id = ?', [1]);

通过 delete 方法,我们可以删除数据库中的数据,需要传入SQL删除语句以及删除的数据。

DB::table('users')->where('id', 1)->delete();

使用查询构造器,也可以直接使用 where 方法指定要删除的数据,然后调用 delete 方法即可。

总结

通过本文的介绍,我们学习了如何在Laravel中使用数据库,包括配置数据库、数据库迁移以及对数据的增、删、改、查操作。Laravel提供了非常方便和优雅的方式来操作数据库,可以大大提高我们的开发效率。