• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
سوال درباره تفاوت Model و ActiveRecord
#1
Question 
سلام
دوستان کسی میتونه راهنمایی کنه که تفاوت Model و ActiveRecord چیه ؟
تا اینجا میدونم که با Model میشه کار هایی مثل اعتبار سنجی رو انجام داد و با ActiveRecord هم میشه کار های دیتابیسی رو انجام داد.
حالا سوال اینجاست چطور از اینا باید تو پروژه استفاده کنم ؟ مثلا واسه تیبل posts اینارو چطوری باید پیاده سازی کرد ؟ از هر کدوم باید اصلا داشته باشم ؟
  پاسخ
تشکر شده توسط :
#2
سلام
ActiveRecord یک الگوی معماری در نرم افزار هستش برای پیاده سازی ORM.
ORM هم خلاصش اینکه هر رکورد یا رابطه ی پایگاه داده رو به عنوان یک شیء میبینه.
حالا در مدل MVC، مدل این عمل رو بر عهده داره. یعنی کلاس رکورد پایگاه داده در مدل نوشته میشه.
یه سرچ تو نت بزنی مطلب زیاده
  پاسخ
تشکر شده توسط : Nariman
#3
درسته ، بعد تکلیف اعتبار سنجی چیه ؟ کلا شما تو yii واسه تیبل posts مثلا چطوری اینارو تعریف می کنین ؟
  پاسخ
تشکر شده توسط :
#4
خیلی ساده است. توی هر مدلت یه متد تعریف میکنی به نام rules . به طور مثال برای جدول Post همچین چیزی تعریف میشه.
کد پی‌اچ‌پی:
public function rules()
    {
        
// NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        
return array(
            array(
'title, content, status''required'),    /// یعنی فیلدهای titleوcontentوstatus الزامی هستن
            
array('status''in''range'=>array(1,2,3)),  ///یعنی فیلد status صرفا شامل مقادیر 1یا 2یا 3 هست
            
array('title''length''max'=>128), /// فیلد title حداکثر شامل 128کاراکتر میشه


            
array('title, status''safe''on'=>'search'),
        );
    } 
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط : Alaa Nariman Reza Muhammad-Ali
#5
(۱۳۹۴ اردیبهشت ۳۱, ۱۱:۴۲ ب.ظ)Nariman نوشته: درسته ، بعد تکلیف اعتبار سنجی چیه ؟ کلا شما تو yii واسه تیبل posts مثلا چطوری اینارو تعریف می کنین ؟

البته اگر از ابزار gii استفاده کرده باشید
خودکار میتونید برای هر جدولتون توی دیتابیس یک مدل از نوع اکتیو رکورد ایجاد کنید به سادگی Smile
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : Nariman webnevesht Muhammad-Ali
#6
همون طور که جناب شیخله گفتن با gii این کار خیلی راحت شده و شما با رفتن به این آدرس http://localhost/ProjectA/index.php?r=gii و وارد کردن پسوردی که قبلا در فولدر config و فایل main.php ست کردید میتونید از model generator استفاده کنید و Base Class هم که به صورت پیشفرض روی CActiveRecord قرار داره و مدل خودتون رو تولید کنید حالا اگه یک یا چند کلید خارجی برای تیبل پستتون درست کرده باشید وقتی فایل رو باز کنید متوجه میشید که خود gii برای این ریلشن ها کد تولید کرده
کد پی‌اچ‌پی:
public function relations()
    {
        
// NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        
return array(
            
'imgs' => array(self::HAS_MANY'Img''post_id'),
            
'cat' => array(self::BELONGS_TO'Categories''cat_id'),
        );
    } 
موفق باشید
  پاسخ
تشکر شده توسط : Muhammad-Ali


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان