📜  laravel 如果数据库有表 - PHP (1)

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

Laravel 数据库表操作

Laravel 是一款流行的 PHP 开发框架,它提供了简便的数据库操作方式。在 Laravel 中,可以通过使用 Eloquent ORM 或原生的 SQL 语句来对数据库表进行操作。

本文将介绍如何在 Laravel 中进行数据库表的操作。

创建表

在 Laravel 中,可以使用迁移(Migration)来创建表。迁移是 Laravel 提供的一种数据库结构变更的方式,它通过编写代码来实现表的创建、修改和删除等操作。

以下是一个创建用户表的示例迁移文件:

<?php

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

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        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();
        });
    }

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

在上述代码中,up 方法用于定义表的结构,down 方法用于删除表。

查询表

在 Laravel 中,可以使用 Eloquent ORM 或原生的 SQL 语句来查询表。

使用 Eloquent ORM

Eloquent ORM 是 Laravel 内置的模型操作工具,它提供了一种方便的方式来查询数据库表。

以下是一个使用 Eloquent ORM 查询用户表的示例代码:

<?php

namespace App\Http\Controllers;

use App\Models\User;

class UserController extends Controller
{
    public function getUsers()
    {
        $users = User::all();

        foreach ($users as $user) {
            echo $user->name;
        }
    }
}

上述代码中,User 是一个 Laravel 模型,通过调用 $user->name 可以获取用户的姓名。

使用原生 SQL 查询

如果需要执行复杂的查询,可以使用原生的 SQL 语句来查询数据库表。

以下是一个使用原生 SQL 查询用户表的示例代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;

class UserController extends Controller
{
    public function getUsers()
    {
        $users = DB::select('SELECT * FROM users');

        foreach ($users as $user) {
            echo $user->name;
        }
    }
}

上述代码中,DB::select 方法用于执行原生的 SQL 查询语句。

修改表

在 Laravel 中,可以使用迁移来修改表的结构。

以下是一个修改用户表的示例迁移文件:

<?php

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

class AddAgeColumnToUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->integer('age')->nullable();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn('age');
        });
    }
}

在上述代码中,up 方法用于添加 age 列,down 方法用于删除 age 列。

删除表

在 Laravel 中,可以使用迁移来删除表。

以下是一个删除用户表的示例迁移文件:

<?php

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

class DropUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::dropIfExists('users');
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        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();
        });
    }
}

在上述代码中,up 方法用于删除 users 表,down 方法用于重新创建 users 表。

通过以上介绍,希望你对在 Laravel 中操作数据库表有了更深入的了解。