📅  最后修改于: 2023-12-03 15:26:52.832000             🧑  作者: Mango
在 Laravel 中,经常需要验证输入的 ID 是否存在于数据库中。在这篇文章中,我们将学习如何在 Laravel 中实现此 ID 不存在验证。
我们需要在 Laravel 的控制器中验证输入的 ID 是否存在于数据库中。如果不存在,我们需要返回一个错误消息,否则继续执行其他的逻辑。
首先,我们需要创建一个控制器,例如 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 是否存在于数据库中。
我们可以使用 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 是否存在于指定的模型中。如果验证失败,我们将重定向回之前的页面并返回错误消息。如果验证成功,我们将继续执行其他的逻辑。
我们需要在视图中显示错误消息。在 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 的介绍。