📌  相关文章
📜  Laravel 7 带有搜索过滤器的分页 - PHP (1)

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

Laravel 7 带有搜索过滤器的分页 - PHP

在本文中,我们将介绍如何使用 Laravel 7 在 PHP 中实现带有搜索过滤器的分页功能。我们将使用 Laravel 7 的强大功能来处理数据的分页和搜索过滤器。

准备工作

在开始之前,确保你的系统中已经安装了 PHP、Composer 和 Laravel 7。你可以访问 Laravel 的官方网站来了解如何安装 Laravel 7。

数据库准备

首先,我们需要准备一个数据库表来存储我们的数据。使用命令行或任何数据库管理工具创建一个新的数据库表,并添加一些数据用于测试。

创建 Laravel 7 应用程序

让我们开始创建一个新的 Laravel 7 应用程序。使用以下命令来创建一个新的 Laravel 7 项目:

$ composer create-project --prefer-dist laravel/laravel pagination-demo

进入项目根目录:

$ cd pagination-demo
生成模型和迁移文件

我们将创建一个新的模型来代表我们的数据表,并使用 Laravel 7 的迁移生成器来生成数据库迁移文件。

首先,让我们生成一个新的模型:

$ php artisan make:model Product

接下来,我们将为 products 数据表生成一个迁移文件:

$ php artisan make:migration create_products_table --create=products

打开新生成的迁移文件 2021_01_01_000000_create_products_table.php,并编辑 up 方法来定义表的结构:

public function up()
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('category');
        $table->integer('price');
        $table->timestamps();
    });
}

运行数据库迁移命令来创建数据表:

$ php artisan migrate
创建控制器和视图

接下来,我们将创建一个控制器和视图来显示带有搜索过滤器的分页数据。

使用以下命令来生成一个新的控制器:

$ php artisan make:controller ProductController

打开新生成的控制器文件 ProductController.php,并添加以下方法:

use Illuminate\Http\Request;
use App\Models\Product;

public function index(Request $request)
{
    // 获取所有请求参数
    $search = $request->input('search');

    // 查询数据
    $products = Product::where('name', 'LIKE', "%$search%")
                        ->orWhere('category', 'LIKE', "%$search%")
                        ->paginate(10);

    // 返回视图并传递数据
    return view('products.index', compact('products'));
}

现在,让我们创建一个视图文件来显示分页数据。使用以下命令来生成一个新的视图文件:

$ mkdir resources/views/products
$ touch resources/views/products/index.blade.php

在新生成的视图文件 index.blade.php 中,添加以下代码:

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Category</th>
            <th>Price</th>
        </tr>
    </thead>
    <tbody>
        @foreach($products as $product)
        <tr>
            <td>{{ $product->name }}</td>
            <td>{{ $product->category }}</td>
            <td>{{ $product->price }}</td>
        </tr>
        @endforeach
    </tbody>
</table>

{{ $products->links() }}
配置路由

让我们配置一个路由来调用我们在上一步中创建的控制器方法。

打开 routes/web.php 文件,并添加以下路由定义:

Route::get('/products', 'ProductController@index')->name('products.index');
运行应用程序

现在,我们已经准备好了所有的代码。使用以下命令来启动 Laravel 7 项目:

$ php artisan serve

访问 http://localhost:8000/products,你将看到一个带有搜索过滤器和分页功能的数据表。

结论

在本文中,我们学习了如何使用 Laravel 7 在 PHP 中实现带有搜索过滤器的分页功能。我们创建了一个数据库表,生成了模型和迁移文件,并使用 Laravel 7 的控制器和视图来显示数据。希望本文对你有所帮助!

以上是本次的代码示例,请查阅Markdown格式的代码片段。希望对你有所帮助!