معرفی متد 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 اضافه کردیم.