2010-05-13 9 views
8

मॉडल उदाहरण से मॉडल नाम कैसे प्राप्त किया जा सकता है। E12x के लिए मॉडल उदाहरण से मॉडल नाम प्राप्त करना YII

$ मॉडल = नया राज्य;

यहां, राज्य मॉडल $ मॉडल राज्य मॉडल उदाहरण है।

मैं मॉडल मॉडल i.e मॉडल मॉडल से मॉडल मॉडल प्राप्त करना चाहता हूं।

+0

कार्य उदाहरण: http://code2real.blogspot.in/2015/06/yii-11-get-current-model-name। एचटीएमएल – Pupil

उत्तर

11

get_class() - एक वस्तु की क्लास का नाम देता है

स्ट्रिंग get_class ([ऑब्जेक्ट $ ऑब्जेक्ट])

इसलिए आप इसे इस तरह उपयोग करते हैं: $ modelname = get_cl गधा ($ modelinstance);

-> यह एक स्ट्रिंग देता है।

+2

मैं इस विधि को बहुत पसंद करता हूं। मॉडल को विस्तारित करने की कोई आवश्यकता नहीं है क्योंकि get_class php http://php.net/manual/en/function.get-class.php – sdjuan

+0

में बनाया गया है यह एक और अधिक कुशल है, यदि आपके पास 12 मॉडल हैं, तो हम 12 नहीं लिख सकते उनके नाम पाने के लिए काम करता है। – Pupil

14

अपने राज्य कक्षा

public function getModelName() 
{ 
    return __CLASS__; 
} 

के लिए इस विधि जोड़ सकते हैं और इसे इस तरह कहते हैं:

$model = new State(); 
echo $model->getModelName(); 
+0

थैंक्स वोलाक्स। यह –

+0

हाय @ वागर काम करता है, साथ ही मैं toninoj अधिक पसंद करता हूं, आप अभी इस जवाब को सही क्यों नहीं मानते? – HPM

1

इस पीएचपी विधि का उपयोग करें: स्पष्टीकरण के साथ get_class

print get_class($object); 
0
<?php 

class Item extends CActiveRecord 
{ 

    public function getBaseModelName() 
    { 
     return __CLASS__; 
    } 

    public function getCalledClassName() 
    { 
     return get_called_class(); 
    } 
} 

class Product extends Item {} 

class Service extends Item {} 

class ProductController extends CController 
{ 
    $model = new Product; 
    echo $model->baseModelName; // Item 
} 

class ServiceController extends CController 
{ 
    $model = new Service; 

    echo $model->calledClassName; // Service 
    echo get_class($model); // Service 
}