Где добавить метод для всего сайта ?

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

Где добавить метод для всего сайта ?

Сообщение ninzzo »

Например списко городов

Код: Выделить всё

public function city(){
$city = array();
$all = new City;
foreach($all as $one){
$city[=$one->id]=$one->name;
}
return $city;
}
Куда добавить этот метод что бы я из любого контроллера мог получить это city() ????
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Где добавить метод для всего сайта ?

Сообщение lynicidn »

в модель
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Где добавить метод для всего сайта ?

Сообщение lynicidn »

public static
Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

Re: Где добавить метод для всего сайта ?

Сообщение ninzzo »

Код: Выделить всё

в модель
в какую модель?

Куда именно? Что бы я мог на любой странице сайта вызвать city() и получить этот массив. Будь то site/login или prodaja/view/17 или mycontroller/myaction.

Неужели в index.php ? Должно же быть место специально)
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Где добавить метод для всего сайта ?

Сообщение Insolita »

в модель city статичный метод public static function city(){ return do_my_code();}
вызывать как City::city() где угодно...
только функция у вас какая-то очень странная

Код: Выделить всё

$city = array();
$all = new City;
foreach($all as $one){
$city[=$one->id]=$one->name;
}
return $city; 
чтобы получить список = что-то типа так..

Код: Выделить всё

 public static function city(){ 
$cities=City::model()->findAll();
return !empty($cities)?CHtml::listData($cities,'id','name'):array();
}
 
Аватара пользователя
ninzzo
Сообщения: 348
Зарегистрирован: 2014.04.25, 07:29

Re: Где добавить метод для всего сайта ?

Сообщение ninzzo »

Insolita, благодарю. Какой раз уже подсказали)

А что моя функция не имеет право на жизнь ? Ее не только в yii можно юзать, а везде где нету CHtml(даже ввидеоуроках по yii инстуктор так же формировал массив). Правда пропустил $cities=City::model()->findAll(); но это итак понятно что оно там будет)
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Где добавить метод для всего сайта ?

Сообщение lynicidn »

Model::find()->indexBy('id')->select('name', 'id')->asArray()->column()
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Где добавить метод для всего сайта ?

Сообщение lynicidn »

lynicidn писал(а):Model::find()->indexBy('id')->select('name', 'id')->asArray()->column()
ааа сорь это ко 2 версии, занесло меня не в тот топик :roll:
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: Где добавить метод для всего сайта ?

Сообщение Ghost_nsk »

если таких всенужных функций (а не по конкретной модели) появляется все больше и больше, я бы сделал отдельный компонент
Ответить