استفاده از متد setPresenceVerifier در Laravel 11

laravel 11 set presence verifier
21 آذر 1403

معرفی متد setPresenceVerifier در فریمورک Laravel 11


Laravel یک فریمورک محبوب برای توسعه وب است و این روزها خیلی از توسعه‌دهندگان به سمت آن روی آورده‌اند. یکی از کارهای مهم در Laravel اعتبارسنجی داده‌ها است که به ما این امکان را می‌دهد تا از صحت اطلاعات کاربران مطمئن شویم. در این راستا، کلاس Validator در Laravel ابزارهای متعددی برای این فرآیند فراهم کرده است.


یکی از قابلیت‌های جالب این کلاس، متد setPresenceVerifier است. با استفاده از این متد می‌توانید روش‌های جدیدی برای بررسی وجود رکوردها در دیتابیس مشخص کنید. این متد به ویژه زمانی که با چندین دیتابیس یا مدل کار می‌کنید، کاربردی می‌شود.


در استفاده از setPresenceVerifier، شما می‌توانید یک پیاده‌سازی سفارشی از PresenceVerifierInterface را به Validator اضافه کنید. این به شما این امکان را می‌دهد که چگونه و چه زمانی بررسی کنید که یک رکورد از قبل وجود دارد یا نه.


در ادامه به بررسی چگونگی استفاده از این متد در Laravel خواهیم پرداخت و نمونه‌کدی برای درک بهتر شما ارائه خواهیم داد.


نمونه کد


use Illuminate\Validation\Validator;
use Illuminate\Validation\PresenceVerifierInterface;

class CustomPresenceVerifier implements PresenceVerifierInterface {
protected $db;

public function __construct($db) {
$this->db = $db;
}

public function getTable($table) {
// Calculate the table name based on your needs
}

public function get($table, $id) {
// Logic to check if record exists
}
}

Validator::setPresenceVerifier(new CustomPresenceVerifier($db));

توضیحات کد


در اینجا، ما یک کلاس سفارشی به نام CustomPresenceVerifier تعریف کردیم که اینترفیس PresenceVerifierInterface را پیاده‌سازی می‌کند.
این کلاس دو متد اصلی دارد: getTable که می‌تواند نام جدول را براساس نیازهای شما محاسبه کند و get که به منطق بررسی وجود رکورد مربوط می‌شود.
در نهایت، ما با استفاده از Validator::setPresenceVerifier، یک نمونه از CustomPresenceVerifier را به Validator اضافه کردیم.


سوالات متداول

؟

متد setPresenceVerifier چیست؟

؟

چگونه می‌توانم از setPresenceVerifier استفاده کنم؟

؟

آیا استفاده از setPresenceVerifier پیچیده است؟

؟

آیا می‌توانم چندین وریفر مختلف داشته باشم؟