📜  此 ID 不存在验证 laravel - PHP (1)

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

此 ID 不存在验证 Laravel - PHP

在 Laravel 中,经常需要验证输入的 ID 是否存在于数据库中。在这篇文章中,我们将学习如何在 Laravel 中实现此 ID 不存在验证。

需求

我们需要在 Laravel 的控制器中验证输入的 ID 是否存在于数据库中。如果不存在,我们需要返回一个错误消息,否则继续执行其他的逻辑。

实现
步骤 1:创建控制器

首先,我们需要创建一个控制器,例如 UserController

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        // TODO: Validate ID exists
        return view('users.edit', ['id' => $id]);
    }
}

edit() 方法中,我们需要验证输入的 ID 是否存在于数据库中。

步骤 2:验证 ID 是否存在

我们可以使用 Laravel 内置的验证器来验证 ID 是否存在于数据库中。在控制器中添加以下代码:

use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
use App\Models\User;

class UserController extends Controller
{
    public function edit($id)
    {
        $validator = Validator::make(
            ['id' => $id],
            ['id' => Rule::exists(User::class, 'id')]
        );

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator)->withInput();
        }

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

此代码使用 Validator::make() 方法创建一个验证器。Rule::exists() 方法用于验证 ID 是否存在于指定的模型中。如果验证失败,我们将重定向回之前的页面并返回错误消息。如果验证成功,我们将继续执行其他的逻辑。

步骤 3:显示错误消息

我们需要在视图中显示错误消息。在 users.edit 视图中添加以下代码:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

以上代码将显示所有的错误消息。

结论

在本文中,我们学习了如何在 Laravel 中实现此 ID 不存在验证。我们使用 Laravel 内置的验证器,验证输入的 ID 是否存在于数据库中,并在视图中显示错误消息。

以上是此 ID 不存在验证 laravel - PHP 的介绍。