2010-05-13 3 views
8

Как получить имя модели из экземпляра модели. Для e.x.Получение имени модели из экземпляра модели YII

$ model = новое состояние;

здесь, Состояние - модель $ модель - пример модели государства.

Я хочу получить название модели i.e Состояние из экземпляра модели модели модели.

+0

Рабочий пример с объяснением: http://code2real.blogspot.in/2015/06/yii-11-get-current-model-name. html – Pupil

ответ

11

get_class() - Возвращает имя класса объекта

струнных get_class ([object $ object])

поэтому вы используете его следующим образом: $ 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

Thanx Wolax. Он работает –

+0

Привет @Wager, Также я предпочитаю toninoj больше, почему бы вам не принять ответ как истинный прямо сейчас? – HPM

1

Используйте этот метод PHP: 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 
} 
Смежные вопросы