Yii Framework Forum: yii2 behaviors - Yii Framework Forum

Jump to content

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

yii2 behaviors

#1 User is offline   mr.rezaee 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 14-February 15

Posted 12 October 2015 - 03:34 PM

سلام
کسی میتونه به طور کلی در مورد سه موضوع
Blameable Behaviors
Timestamp Behavior
و
Sluggable Behavior
یه توضیحی بده و بگه هر کدوم به چه دردی میخورن؟
راستش تعریف هاشونُ که مطالعه کردم متوجه نشدم
با تشکر.
0

#2 User is offline   nima_naraghi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 189
  • Joined: 15-March 13
  • Location:Iran, Tehran

Posted 13 October 2015 - 02:02 AM

View Postalien121, on 12 October 2015 - 03:34 PM, said:

سلام
کسی میتونه به طور کلی در مورد سه موضوع
Blameable Behaviors
Timestamp Behavior
و
Sluggable Behavior
یه توضیحی بده و بگه هر کدوم به چه دردی میخورن؟
راستش تعریف هاشونُ که مطالعه کردم متوجه نشدم
با تشکر.


خیلی سادست اصلا فکر نکن چیز پیچیده ایست.
شما فرض کن یک سایت خبری داری و میخوای کارمندی که یک خبر را مینویسد معلوم باشد، همچنین میخوای کارمندی که یک خبری که قبلا نوشته شده است را ویرایش میکند هم معلوم باشد. برای اینکار شما یک جدول مثل جدول زیر در دیتابیس درست میکنی
[NEWS]
id , title , created_by , updated_by

شما میتونی خودت یه کد بنویسی که هر دفعه وقتی یه نفر خبری را میسازه یا ویرایش میکنه آی دی اون نفر در ستونهای
created_by
و
updated_by
ذخیره بشه
از اونجایی که این نیاز برای خیلی جاها پیش میاد به جای اینکه شما هر دفعه بیای این کد را بنویسی میای
blameable behavior
را به مدلت (که در اینجا "خبر" است ) اضافه میکنی تا دقیقا همینکارو بکنه یعنی میاد این دوتا ستون را با آی دی کاربر سازنده یا ویرایشگر پر میکنه همین!

timestamp behavior
هم دقیقا همیکارو برای ستونهای زمان انجام میده یعنی فرض شما میخوای زمانی که یک خبر ساخته میشه یا زمانی که کسی یک خبر موجود را ویرایش میکند ثبت بشود دو ستون به جدولت اضافه میکنی
[NEWS]
id , title , created_by , updated_by, created_at , updated_at
و بجای اینکه هر دفه خودت برای اینکار کد بنویسی
timestamp behavior
را به مدلت اضافه میکنی تا اینکار برات انجام بده

slug
یکم کارش پیشرفته تره و برای خوشگل کردن
URL
بکار میره.
یعنی میخوای برای یک خبر به جای آدرس
"http://www.mynews.com/news/id/89893"
داشته باشی
"http://www.mynews.com/news/iran-attacks-israel"

برای اینکار به صرفه نیست که یک ستون اضافه کنی بلکه فقط کافیه یک
attribute
بنام
slug
به مدلت اضافه کنی و با اضافه کردن
sluggable behavior
هر بار که مدل را لود کنی
اسلاگ را با استفاده از ستون عنوان میسازه و پر میکنه تا بتونی باهاش آدرس مناسب بسازی.
ولی اینکه چطوری آدرس خوشگل بسازی خودش بحثی است دراز و طولانی

همه این رفتارها آپشنهای دیگه ای هم دارن که اونجوری ازشون استفاده کنی که دوست داری مثلا اگه دوست داری اسم ستون به جای
created_at
باشه
sakhte_shode_dar_tarikh
با یکم تنظیم میتونی اینو به
Timestamp Behavior
بفهمونی

1

#3 User is offline   mr.rezaee 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 14-February 15

Posted 13 October 2015 - 03:39 AM

بسیار ممنونم.
0

#4 User is offline   Hesam K 

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

Posted 13 October 2015 - 05:39 AM

Quote

"http://www.mynews.com/news/id/89893"
داشته باشی
"http://www.mynews.com/news/iran-attacks-israel"

عجب خبری هم مثال زدی :D :D

(\ /)
(O.o)
(> <)

This is Bunny. Copy Bunny into your signature to help him on his way to world domination.
2

#5 User is offline   nima_naraghi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 189
  • Joined: 15-March 13
  • Location:Iran, Tehran

Posted 15 October 2015 - 06:01 AM

View PostHesam K, on 13 October 2015 - 05:39 AM, said:

عجب خبری هم مثال زدی :D :D

;D
;)
1

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