تیشرت Laravel
خرید
اطلاعات بیشتر

چگونه : یک خصیصه به Model در Laravel اضافه کنیم؟

همانطور که می دانید Model در معماری نرم افزار MVC به رابط برنامه با پایگاه داده گفته می شود و همه ارتباط ها با دیتابیس از طریق مدل انجام میگیره . معمولا مقدار برگشتی مدل بر اساس فیلدهای جدول مربوطه در دیتابیس هست .مثلا فیلدهای ID, Name, Family, Password و … برای جدول کاربر برگشت داده می شوند (ساختار جدول طبق تعریف هر پروژه ممکن است متفاوت باشد) . به فیلدهای جدول که در مدل مربوط به همان جدول تعریف می شوند در لاراول خصیصه یا Attribute گفته میشود.

حالا فرض کنید می خواهید یک خصیصه جدید که در جدول مربوطه وجود ندارد به مدل اضافه کنید مثلا در بالا فیلد نام کاربری در جدول نداریم و می خواهیم در Model مربوط به جدول User آن را بسازیم و به کنترلر برگشت دهیم . یا فرض کنید می خواهید Slug یا همان آدرس SEO مقاله را در مدل سرهم کنید و برگشت دهید و …

یک Model معمولی در لاراول معمولا به این شکل است:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    //
}

اول باید خصیصه ای که می خواهیم اضافه کنیم به لیست خصایص اضافه کنیم:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    /**
     * The accessors to append to the model's array form.
     *
     * @var array
     */
    protected $appends = ['url'];
}

اضافه کردن کد بالا برای متد های toArray()  و toJson() مدل مهم است. حالا می توانیم یک Accessor برای خصیصه جدید تعریف کنیم:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    /**
     * The accessors to append to the model's array form.
     *
     * @var array
     */
    protected $appends = ['url'];

    /**
     * @return string
     */
    public function getUrlAttribute() {
        return route('post',[$this->attributes['slug']]);
    }
}

و تمام شد ! به این صورت که دیدید می توانید خصیصه های مختلفی به مدل تان اضافه کنید. فقط دقت کنید که مدل فقط داده ها را برای برنامه شما فراهم می کند و آنها را اجرا نمی کند!

در همین رابطه :   لاراول 5 ساله شد !

منبع

دسته بندی : Laravel

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

More in فونت
۵۰ فونت انگلیسی جدید و بسیار زیبا ۲۰۱۱

امروز 50 فونت جدید و داغ سال 2011 را از طرف سایت 1stwebdesigner برای شما آماده کرده ایم که امیدواریم...

Close