تالار گفتمان nCIS.ir

نسخه‌ی کامل: گرفتن attributeLabel به صورت استاتیک
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان
این اولین پست بنده هست. راه اندازی این انجمن رو به همه دوستان تبریک عرض می کنم، و یه تشکر ویژه از آقای شهرکی به خاطر فعالیت مفیدشون توی زمینه های مفید برنامه نویسی

یه سوال داشتم:
چطوری می تونم attributeLable ها رو به صورت استاتیک بگیرم
نمی خوام یه تابع استاتیک مثل attributeLabel ایجاد کنم و مقدار هارو بگیرم، چون اینطوری مجبورم هرجی توی attributeLabels می ذارم توی نوع استاتیکش هم کپی کنم

ممنون
منظورتون رو متوجه نمیشم از اینکه میگین استاتیک. بهرحال باید متدی داشته باشین به اسم attributeLabels و هرجا خواستین برچسب هر فیلدی رو بگیرین از این کد استفاده کنید:
$model->getAttributeLabel('username')
و بجای username اسم فیلد موردنظرتون رو بنویسید.
(07-03-1394، 06:38 ب.ظ)ADMIN نوشته: [ -> ]منظورتون رو متوجه نمیشم از اینکه میگین استاتیک. بهرحال باید متدی داشته باشین به اسم attributeLabels و هرجا خواستین برچسب هر فیلدی رو بگیرین از این کد استفاده کنید:

$model->getAttributeLabel('username')
و بجای username اسم فیلد موردنظرتون رو بنویسید.

نه می خوام استاتیک باشه

مدلی که دارم آرایه ای از مدل هاست که داخل یه تیبل از foreach استفاده کردم ازش ولی باری قسمت head جدول می خوام از خود attribute label ها استفاده کنم
چیزی که زدم این هست، ولی گفتم شاید خود yii همچین چیزی داشته باشه

public static function labels()
{
   return (new static)->attributeLabels();
}


درخواست هایی در مورد انجمن داشته باشیم باید کجا بگیم؟
برای شروع می خواستم اگه می شه موقع ای که داریم زیر یه پست جواب می دیم تگ های کد های برنامه نویسی هم باشه مجبور نباشیم دکمه پاسخ رو بزنیم
ممنون
درمورد انجمن توی بخش گفتگو درباره سایت تاپیک بزنید. البته فعلا تغییری توی ساختارش ایجاد نمیشه. این پایین نوشته پاسخ سریع و کارش همینه. اگه ادیتور کامل رو میخواین روی پاسخ جدید در بالای کادر پاسخ جدید کلیک کنید.
درمورد مشکلتون هم باید بگم خیر، چنین چیزی توکار نیست و درصورت نیاز میتونید خودتون اضافه کنید. علت اینکه میخواین استاتیک باشه رو نمیدونم چون بنظرم منطقی نمیاد. همیشه فرمها با یک آبجکت از مدل کار میکنن.
public static function labels()
{
   return (new static)->attributeLabels();
} 

این کد رو سعی کردم به خود کلاس  yiidbActiveRecord اضافه کنم ولی هیچ خروجی نداشت
چطوری می شه همچین کاری کرد؟
فکر نمیکنم منطقی باشه که کلاسهای خود فریمورک رو تغییر بدین. یکی از این کلاس توی پروژه خودتون extend کنید و اونجا تغییرات دلخواه رو اعمال کنید. مدلهاتون رو هم از کلاس خودتون مشتق کنید.
(09-03-1394، 03:02 ب.ظ)ADMIN نوشته: [ -> ]فکر نمیکنم منطقی باشه که کلاسهای خود فریمورک رو تغییر بدین. یکی از این کلاس توی پروژه خودتون extend کنید و اونجا تغییرات دلخواه رو اعمال کنید. مدلهاتون رو هم از کلاس خودتون مشتق کنید.

باشه ولی اینکه کار نمی کنه نمی دونید مشکلش چیه؟
نمیدونم والا. شاید توی پروژه شما از YiiLite داره استفاده میشه.