سلام. وقتی که قانون جدیدی رو برای ولید کردن داده ها تو کنترلر میخواییم تعریف کنیم و یه قانون جدید ایجاد میکنیم اون چطور میتونیم رجیستر کنیم؟ بدون اینکه اون رو داخل فایل route بنویسیم؟
مثلا:
Validator::extend('alpha_spaces', function($attribute, $value)
{
});
با استفاده از Service Container و Service Provider
برای همین منظور
کافیه کلاس زیر رو درون پوشه Provider اضافه کنید
<?php namespace AppProviders;
use IlluminateSupportServiceProvider;
class ValidatorServiceProvider extends ServiceProvider {
public function boot()
{
$this->app['validator']->extend('alpha_spaces', function ($attribute, $value)
{
});
}
public function register()
{
}
}
وبعد انو بصورت زیر درون فایل config/app.php رجیستر کنید
'providers' => [
// Other Service Providers
'AppProvidersValidatorServiceProvider',
],
ممنون.
منظور از register چیه؟
اینجا رو بخونید توضیح داده
laravel.com/docs/master/providers
برای استفاده از یک یا چند سرویس دیگه ابتدا باید مطمن شد که اون سرویس ها قبلا رجیستر شده باشند.برای همین از متد بوت استفاده کردیم.
و از متد رجیستر برای bind کردن درون service container