laravel表格增删改查

2023年 8月 6日 44.9k 0

Laravel 是一个流行的 PHP 框架,它提供了方便的工具和功能来帮助开发人员快速构建 Web 应用程序。其中一个基本功能是使用表格增删改查数据,本文将介绍如何在 Laravel 中实现这些功能。

  • 创建数据库和表格
  • 首先,我们需要创建一个数据库和一个数据表来存储数据。在本文中,我们将创建一个名为“users”的表格,它包含以下字段: id、name、email 和 password。

    我们可以使用 Laravel 中的迁移来创建表格。在命令行中运行以下命令:

    php artisan make:migration create_users_table --create=users

    登录后复制

    运行该命令后,Laravel 将在“database/migrations”目录中创建一个新的迁移文件。我们可以在迁移文件中使用“Schema”类来定义表格结构。其代码如下:

    use IlluminateDatabaseMigrationsMigration;
    use IlluminateDatabaseSchemaBlueprint;
    use IlluminateSupportFacadesSchema;

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

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

    登录后复制

    以上代码创建了一个名为“users”的表格,其中包含 id、name、email、password 和 timestamps 字段。

    当我们运行迁移时,Laravel 将在数据库中创建表格。运行以下命令进行迁移:

    php artisan migrate

    登录后复制

  • 增加记录
  • 要向表格中添加记录,我们需要创建一个控制器并使用模型来将数据保存到数据库中。在命令行中运行以下命令:

    php artisan make:controller UserController

    登录后复制

    该命令将在“app/Http/Controllers”目录中创建一个新的“UserController”控制器。

    在控制器文件中,我们可以使用“create”方法来保存新记录。以下是示例代码:

    use AppUser;
    use IlluminateHttpRequest;

    class UserController extends Controller
    {
    public function store(Request $request)
    {
    $user = User::create([
    'name' => $request->input('name'),
    'email' => $request->input('email'),
    'password' => bcrypt($request->input('password')),
    ]);

    return response()->json([
    'message' => 'User created successfully',
    'user' => $user,
    ]);
    }
    }

    登录后复制

    在以上代码中,我们首先导入“User”模型,然后在“store”方法中使用“create”方法来创建新记录。我们将请求中的“name”、“email”和“password”字段用作参数,并使用“bcrypt”函数将密码加密。最后,我们返回一个 JSON 响应,其中包含创建的用户记录。

  • 列出记录
  • 我们可以使用控制器来获取表格中的所有记录并将其返回给用户。在控制器中添加以下代码:

    public function index()
    {
    $users = User::all();

    return view('users.index', ['users' => $users]);
    }

    登录后复制

    以上代码通过使用“all”方法获取用户表格中的所有记录,并将结果传递给视图。我们可以在视图中使用这些数据来渲染 HTML 表格。

  • 更新记录
  • 与创建记录时类似,我们可以使用模型和控制器来更新记录。以下是一个示例“update”方法:

    public function update(Request $request, $id)
    {
    $user = User::find($id);

    $user->name = $request->input('name');
    $user->email = $request->input('email');

    if ($request->input('password')) {
    $user->password = bcrypt($request->input('password'));
    }

    $user->save();

    return response()->json([
    'message' => 'User updated successfully',
    'user' => $user,
    ]);
    }

    登录后复制

    在以上代码中,我们首先使用“find”方法获取指定 ID 的用户记录。然后,我们将请求中的“name”和“email”字段用作属性值来更新记录。如果请求包含“password”字段,则使用“bcrypt”函数将其加密并更新用户记录。最后,我们使用“save”方法保存记录,并返回更新后的用户记录作为 JSON 响应。

  • 删除记录
  • 我们可以使用控制器和模型来删除用户记录。以下是一个示例的“destroy”方法:

    public function destroy($id)
    {
    $user = User::find($id);

    $user->delete();

    return response()->json([
    'message' => 'User deleted successfully',
    ]);
    }

    登录后复制

    在以上代码中,我们首先使用“find”方法获取指定 ID 的用户记录。然后,在使用“delete”方法删除记录之前,我们可以对该记录执行其他操作。最后,我们返回一个 JSON 响应,其中包含有关已删除用户的信息。

  • 表格视图
  • 对于列出所有用户记录的情况,我们可以使用视图来渲染 HTML 表格。以下是一个示例视图代码:

    @foreach ($users as $user)

    @endforeach

    ID Name Email Action
    {{ $user->id }} {{ $user->name }} {{ $user->email }} Edit

    {{ csrf_field() }}
    {{ method_field('DELETE') }}
    Delete

    登录后复制

    在以上代码中,我们使用“@foreach”指令来循环遍历所有用户记录,并在 HTML 表格中显示它们的 ID、名称和电子邮件。此外,我们添加了两个操作列:编辑和删除。对于删除,我们使用一个表单来提交 DELETE 请求,并使用“csrf_field”指令添加 CSRF 令牌。对于编辑,我们在路由中定义单独的视图和控制器。

  • 结论
  • 在本文中,我们介绍了如何使用 Laravel 中的模型和控制器来执行基本的表格增删改查操作。虽然在实际项目中可能涉及更多的功能和细节,但本文提供了一个起点来帮助您开始使用 Laravel 来处理 Web 应用程序的表格操作。

    以上就是laravel表格增删改查的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论