Laravel 表单验证:验证数据库记录是否存在
    		       		warning:
    		            这篇文章距离上次修改已过428天,其中的内容可能已经有所变动。
    		        
        		                
                在Laravel中,你可以使用表单请求验证来检查数据库中是否存在某条记录。以下是一个例子:
首先,创建一个表单请求类:
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\DB;
 
class MyFormRequest extends FormRequest
{
    public function authorize()
    {
        // 可以在这里添加额外的授权逻辑
        return true;
    }
 
    public function rules()
    {
        return [
            'field1' => 'required',
            // 添加自定义验证规则来检查数据库中是否存在记录
            'field2' => [
                'required',
                function ($attribute, $value, $fail) {
                    if (!DB::table('your_table')->where('your_field', $value)->exists()) {
                        $fail($attribute.' does not exist in the database.');
                    }
                },
            ],
        ];
    }
}然后,在控制器中使用这个请求类:
use App\Http\Requests\MyFormRequest;
 
class MyController extends Controller
{
    public function store(MyFormRequest $request)
    {
        // 请求通过验证,可以安全地处理数据
    }
}在这个例子中,MyFormRequest 类定义了一个自定义验证规则,用于检查 your_table 表中是否存在指定的记录。如果不存在,则验证失败,并返回错误信息。在控制器中,你使用 MyFormRequest 作为中间件来验证传入的 HTTP 请求。
评论已关闭