Badraoui نشر 12 فبراير 2016 أرسل تقرير نشر 12 فبراير 2016 أنا جديد على Yii، وعند تتبع بعض الدروس، أدرجت الوظيفة التالية: } public function getTypeOptions(){ return array(self::TYPE_BUG=>'Bug',self::FEATURE=>'Feature',self::TASK=>'Task'); } ثم: public function getTypeText(){ $typeOptions = $this->typeOptions; return isset($typeOptions[$this->type_id]) ? $typeOptions[$this->type_id] : "unknown type ({$this->type_id})"; } مما فهمته أن getTypeOption ترجع مصفوفة من أنواع الـ TypeOption الموجودة داخل الاستمارة form، والتي تستعمل بالطريقة التالية: $typeOptions = $this->typeOptions; وقد حاولت أيضا بالطريقة التالية: $typeOptions = $this->getTypeOptions(); لكن دون جدوى، فكيف أحصل على getTypeTex الخاصة بالاستمارة؟ اقتباس
0 E.Nourddine نشر 13 فبراير 2016 أرسل تقرير نشر 13 فبراير 2016 نعم بالإمكان الحصول على ذلك من خلال getAttributeName داخل Model والتي يمكن استعمالها من خلال this->attributeName لاسترداد قيمة الوظيفة من خلال Moldel والتي يطلق عليها اسم "virtual attribute"، ويمكن الاطلاع على الأمر اكثر من خلال الرابط. بالنسبة للكود المُدرج في سؤالك، يمكن تصحيحه، وذلك من خلال: /** * PHP getter magic method. * This method is overridden so that AR attributes can be accessed like properties. * @param string $name property name * @return mixed property value * @see getAttribute */ public function __get($name) { if(isset($this->_attributes[$name])) return $this->_attributes[$name]; elseif(isset($this->getMetaData()->columns[$name])) return null; elseif(isset($this->_related[$name])) return $this->_related[$name]; elseif(isset($this->getMetaData()->relations[$name])) return $this->getRelated($name); else return parent::__get($name); } وذلك باستخدام مايسمى بـ getter magic method ، ويمكن أيضا استعمالها بالاطلاع على موقع php.: اقتباس
السؤال
Badraoui
أنا جديد على Yii، وعند تتبع بعض الدروس، أدرجت الوظيفة التالية:
}
public function getTypeOptions(){ return array(self::TYPE_BUG=>'Bug',self::FEATURE=>'Feature',self::TASK=>'Task'); }
ثم:
مما فهمته أن getTypeOption ترجع مصفوفة من أنواع الـ TypeOption الموجودة داخل الاستمارة form، والتي تستعمل بالطريقة التالية:
وقد حاولت أيضا بالطريقة التالية:
لكن دون جدوى، فكيف أحصل على getTypeTex الخاصة بالاستمارة؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.