آشنایی با پکیج custom casts در لاراول

ترجمه و تالیف : رضا جمال زاده
تاریخ انتشار : 13 شهریور 98
خواندن در 38 ثانیه
دسته بندی ها : لاراول

آشنایی با پکیج custom casts در لاراول

اگر شما از جمله کسانی هستید که برای توسعه وب سایت خود از فریمورک لاراول استفاده می‌کنید حتما از خصوصیات casts  در مدل خود استفاده کرده‌اید، در واقع casts خصوصیتی در مدل لاراول است که با استفاده از آن می‌توانید نوع داد‌ه‌های مورد نظر خود را تعیین کنید.

به عنوان مثال:

Protectes $casts=[“is_admin”=>”Boolean”]

حال خصوصیت is_admin  همیشه به صورت بولین خواهد‌ بود.

پکیج custom casts  درلاراول به شما اجازه می‌دهد تا انواع castsهای سفارشی خودتان را بسازید ، به عبارت دیگر laravel custom casts مشابه با ویژگی casting  در لاراول کار می‌کند با این تفاوت که منطق(نوع داده) سفارشی در یک کلاس جدا تعریف می‌کنیم. در کنار انواع پیچیده‌ی casts که با استفاده از این پکیج می‌توانیم بسازیم، این پکیج به ما توانایی گوش دادن و واکنش نشان دادن به events های مدل مورد نظر را می‌دهد.

در اینجا یک مثال از مدل user که از casts سفارشی استفاده می‌کند آورده‌ایم:

namespace App;

use App\CustomCasts\NameCast;
use Illuminate\Database\Eloquent\Model;
use Vkovic\LaravelCustomCasts\HasCustomCasts;

class User extends Model
{
    use HasCustomCasts;

    protected $casts = [
        'is_admin' => boolean // <-- Laravel default cast type
        'name' => NameCast::class // <-- Our custom cast class (follow section below)
    ];
}

با در نظر گرفتن مدل بالا نمونه‌ایی از custom casts class :

namespace App\CustomCasts;

use Vkovic\LaravelCustomCasts\CustomCastBase;

class NameCast extends CustomCastBase
{
    public function setAttribute($value)
    {
        return ucwords($value);
    }

    public function castAttribute($value)
    {
        return $this->getTitle() . ' ' . $value;
    }

    protected function getTitle()
    {
        return ['Mr.', 'Mrs.', 'Ms.', 'Miss'][rand(0, 3)];
    }
}

در مثال بالا $value در setAttribute ، داده‌ایی است که می‌خواهیم در دیتابیس ذخیره کنیم.این پکیج همچنین شما را قادر می‌سازد تا رخدادهای مدل را مدیریت کنید و به آن رخداد‌ها واکنش نشان دهید.

 برای کسب اطلاعات بیشتر از مراحل نصب و مشاهدهی مثال های بیشتر به صفحه گیت هاب پکیج مراجعه فرماید. vkovic/laravel-custom-casts

مقالات پیشنهادی