اگر شما از جمله کسانی هستید که برای توسعه وب سایت خود از فریمورک لاراول استفاده میکنید حتما از خصوصیات 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
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید