Yii Framework Forum: :::::: روش استفاده از CFormModel :::: ( سوال ) - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

:::::: روش استفاده از CFormModel :::: ( سوال ) آیا میشه بجای استفاده از CFormModel برای تولید فرم از CActiveRecord

#1 User is offline   Hamed Soleimanian 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 27-May 12

Posted 02 June 2012 - 08:34 AM


به نام خدا.

دوستان من از تازه کار های یی هستم.
یه سوال داشتم در مورد استفاده از CFormModel برای ساخت فرم.
می خواستم بدونم آیا حتما باید با این کلاس فرم رو تولید کنیم و بعد با استفاده از AR اون رو وارد DB کنیم یا اینکه میشه مستقیم از همون AR استفاده کنیم و فرم رو تولید کنیم و بعد INSERT کنیم.

با تشکر

حامد سلیمانیان

0

#2 User is offline   Reza m 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 148
  • Joined: 07-March 12

Posted 09 June 2012 - 12:03 AM

View PostHamed Soleimanian, on 02 June 2012 - 08:34 AM, said:


به نام خدا.

دوستان من از تازه کار های یی هستم.
یه سوال داشتم در مورد استفاده از CFormModel برای ساخت فرم.
می خواستم بدونم آیا حتما باید با این کلاس فرم رو تولید کنیم و بعد با استفاده از AR اون رو وارد DB کنیم یا اینکه میشه مستقیم از همون AR استفاده کنیم و فرم رو تولید کنیم و بعد INSERT کنیم.

با تشکر

حامد سلیمانیان




سلام، لازم نیست که از CFormModel استفاده کنی، این کلاس معمولا برای فرمهایی به کار میره که نیاز به ذخیره در دیتابیس نیست.


1

#3 User is offline   Nabi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 208
  • Joined: 22-February 12
  • Location:Ahwaz

Posted 06 September 2012 - 12:11 PM

پیشنهاد اکید بنده استفاده از CFormModel برای فرم هاست، چه با دیتابیس درگیر باشند و چه نباشند.
به نظر بنده اینکار اصولی تر است.



وقتی پیغام میذارید، بی زحمت متنتون رو انتخاب کنید و این دو تا کار ناقابل رو هم انجام بدید:
1. از اون بالا RTL رو انتخاب کنید.
2. فونت رو هم Tahoma بگذارید.
که چشمون در نیاد.
دمت گرم!

www.IranPHP.ir
0

#4 User is offline   Reza m 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 148
  • Joined: 07-March 12

Posted 21 September 2012 - 04:49 AM

View PostNabi, on 06 September 2012 - 12:11 PM, said:

پیشنهاد اکید بنده استفاده از CFormModel برای فرم هاست، چه با دیتابیس درگیر باشند و چه نباشند.
به نظر بنده اینکار اصولی تر است.





ممکنه بیشتر توضیح بدید، چون دلیل این تاکید رو درک نمیکنم

0

#5 User is offline   Nabi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 208
  • Joined: 22-February 12
  • Location:Ahwaz

Posted 22 September 2012 - 07:11 AM

View PostReza m, on 21 September 2012 - 04:49 AM, said:


ممکنه بیشتر توضیح بدید، چون دلیل این تاکید رو درک نمیکنم



برای حل یک مسئله راه های زیادی وجود داره ولی باید بهترین و اصولی ترین راه رو انتخاب کرد.
برای هر چیزی ابزاری ساخته شده که باید در جای خودش استفاده بشه.
CFormModel اسمش روشه، مدلیه که با فرم درگیره.
CActiveRecord هم همونطور که از اسمش بر میاد مدلیه که با دیتابیس درگیره.
شما یک فرم دارید که قراره در دیتابیس ذخیره بشه، ابتدا توسط مدل CFormModel اطلاعات رو از فرم میگیرید و به مدل CActiveRecord میدید و متد save رو صدا میزنید.
این به نظر یک راه حل اصولی است.
البته بازهم این نظر بندست.
شاید بد نباشه این سوال رو در بخش فروم انگلیسی هم پرسید تا اساتید نظرات کارشناسی تری بدن
ممنون



وقتی پیغام میذارید، بی زحمت متنتون رو انتخاب کنید و این دو تا کار ناقابل رو هم انجام بدید:
1. از اون بالا RTL رو انتخاب کنید.
2. فونت رو هم Tahoma بگذارید.
که چشمون در نیاد.
دمت گرم!

www.IranPHP.ir
0

#6 User is offline   Hesam K 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 125
  • Joined: 14-August 11

Posted 28 September 2012 - 04:33 AM


سلام
شاید بد نباشه نگاهی به مستندات خود فریمورک بندازیم در این رابطه
من قسمت زیر رو عینا کپی میکنم که نیازی به رجوع به لینک هم نباشه




Depending on how we make use of the user input, we can create two types of model. If the user input is collected, used and then discarded, we would create a form model; if the user input is collected and saved into database, we would use an active record instead. Both types of model share the same base class CModel which defines the common interface needed by form.



با توجه به این عبارت، هر زمانی که با دیتابیس و ذخیره داده ها سر و کار داریم باید با active record کار کنیم.
اگر مثال های خود فریمورک، مثل وبلاگی که به صورت آماده همراه فریمورک هست هم بررسی کنیم، میبینیم که از active record استفاده شده برای ورود و ذخیره داده ها
مورد دیگه هم فرایند آپدیت هست که بدون مفهوم active record زمان گیر و مشکل میشه، اما با استفاده از اون و همینطور active form که اختصاصا به همین دلیل ایجاد شده، این قسمت هم توسط فریمورک اداره میشه.



2

#7 User is offline   Reza m 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 148
  • Joined: 07-March 12

Posted 28 September 2012 - 09:28 AM


من هم فکر میکنم استفاده از CActiveRecordبرای فرمهایی که با دیتابیس سرو کار دارند، روش درستتر باشه ، چون میشه برای یک مدل بدون اضافه کاری چندین فرم درست کرد، اما اگه قرار باشه برای هر فرم یک CFormModel ایجاد بشه هم مساله Validation از یکپارچگی خارج میشه ، و هم پروژه بیش از حد شلوغ میشه و امکان کپی کد تکراری افزایش پیدا میکنه


1

#8 User is offline   Nabi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 208
  • Joined: 22-February 12
  • Location:Ahwaz

Posted 04 October 2012 - 06:45 AM

خب باشه.
حالا صحبت روی فرم هایی بود که تمام فیلدها مستقیم با فیلدهای یک تیبل درگیر هستند.
شما بفرمائید مثلاً برای یک فرم ثبت نام که تکرار پسورد و کپچا کد داره بهترین گزینه کدومه؟


وقتی پیغام میذارید، بی زحمت متنتون رو انتخاب کنید و این دو تا کار ناقابل رو هم انجام بدید:
1. از اون بالا RTL رو انتخاب کنید.
2. فونت رو هم Tahoma بگذارید.
که چشمون در نیاد.
دمت گرم!

www.IranPHP.ir
0

#9 User is offline   Reza m 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 148
  • Joined: 07-March 12

Posted 08 October 2012 - 07:55 AM

View PostNabi, on 04 October 2012 - 06:45 AM, said:

خب باشه.
حالا صحبت روی فرم هایی بود که تمام فیلدها مستقیم با فیلدهای یک تیبل درگیر هستند.
شما بفرمائید مثلاً برای یک فرم ثبت نام که تکرار پسورد و کپچا کد داره بهترین گزینه کدومه؟



به نظر من از نظر کارایی فرق جندانی وجود نداره ، اما از نظر سازماندهی من ترجیح میدم مستقیما از اکتیو رکورد استفاده کنم

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users