Дурацкий вопрос про контроллер и модель

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
vitaxa_prog
Сообщения: 306
Зарегистрирован: 2011.06.06, 22:44
Откуда: Волноваха

Дурацкий вопрос про контроллер и модель

Сообщение vitaxa_prog » 2012.02.29, 19:28

В контроллере Ads хочу получить данные из модели Category

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

public function actionCreate()
    {
        $model=new Ads;

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);
        //категории
        [b]$categories = Category::model()->findAll();[/b]
        if(isset($_POST['Ads']))
        {
            $model->attributes=$_POST['Ads'];
            if($model->save())
                $this->redirect(array('view','id'=>$model->id));
        }

        $this->render('create',array(
            'model'=>$model,
            'cat'=>$categories,
        ));
    } 
для выпадающего списка.
И ничего не получаю. Возврщает NULL.
Что то делаю не правильно. Но не могу понять что?
В принципе ничего нет невозможного.
— Вы думаете?
— Для человека. С интеллектом.

Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Re: Дурацкий вопрос про контроллер и модель

Сообщение Антон Смирнов » 2012.02.29, 21:38

"В контроллере Ads хочу получить данные из модели Category" что это значит?

Аватара пользователя
vitaxa_prog
Сообщения: 306
Зарегистрирован: 2011.06.06, 22:44
Откуда: Волноваха

Re: Дурацкий вопрос про контроллер и модель

Сообщение vitaxa_prog » 2012.02.29, 22:11

Антон Смирнов писал(а):"В контроллере Ads хочу получить данные из модели Category" что это значит?
Да, нет спасибо. Проблему решил. Только как то странно она решается. Я раньше с CodeIgniter работал. Вот и споткнулся здесь.
Мне нужно было для добавления объявления получить категории и прикрутить их к форме в виде выпадающего списка.
Оказывается это делается прямо в виде. :shock:

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

 echo CHtml::dropDownList('Ads[id_category]','', CHtml::listData(Category::model()->findAll(),'id','name'), array('empty' => 'Выберите тип ТС'));
Я даже представить себе не мог, что обращение к модели в представлении возможно.
В принципе ничего нет невозможного.
— Вы думаете?
— Для человека. С интеллектом.

voshum
Сообщения: 40
Зарегистрирован: 2011.03.21, 17:43

Re: Дурацкий вопрос про контроллер и модель

Сообщение voshum » 2012.03.01, 05:30

Я даже представить себе не мог, что обращение к модели в представлении возможно.
Если ты имеешь в виду строку CHtml::listData(Category::model()->findAll(),'id','name'), то это не возможность Yii, а возможность php.

Аватара пользователя
andy_s
Сообщения: 127
Зарегистрирован: 2012.01.22, 13:15

Re: Дурацкий вопрос про контроллер и модель

Сообщение andy_s » 2012.03.01, 11:41

А чем не устраивал первый вариант?

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

CHtml::listData($cat,'id','name')
 
$cat передаётся из контроллера. Идеологически это всё-таки правильней :)

Аватара пользователя
vitaxa_prog
Сообщения: 306
Зарегистрирован: 2011.06.06, 22:44
Откуда: Волноваха

Re: Дурацкий вопрос про контроллер и модель

Сообщение vitaxa_prog » 2012.03.01, 16:28

andy_s писал(а):А чем не устраивал первый вариант?

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

CHtml::listData($cat,'id','name')
$cat передаётся из контроллера. Идеологически это всё-таки правильней :)
В том то и дело, что меня такой вариант очень устраивает. Но...
Вот эта стрка в экшине Create

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

]$categories = Category::model()->findAll(); 
Возвращает NULL. Почему, не могу понять.
А в виде отрабатывает нормально :?:
В принципе ничего нет невозможного.
— Вы думаете?
— Для человека. С интеллектом.

Аватара пользователя
andy_s
Сообщения: 127
Зарегистрирован: 2012.01.22, 13:15

Re: Дурацкий вопрос про контроллер и модель

Сообщение andy_s » 2012.03.01, 17:02

Разве это не то же самое, что внутри listData() ? Плюс findAll() всегда возвращает массив (пустой, если записи не найдены).

esche
Сообщения: 1054
Зарегистрирован: 2010.11.24, 03:39

Re: Дурацкий вопрос про контроллер и модель

Сообщение esche » 2012.03.01, 21:03

А во вьюшке точно $cat = null? или $categories
...

Аватара пользователя
vitaxa_prog
Сообщения: 306
Зарегистрирован: 2011.06.06, 22:44
Откуда: Волноваха

Re: Дурацкий вопрос про контроллер и модель

Сообщение vitaxa_prog » 2012.03.01, 21:57

esche писал(а):А во вьюшке точно $cat = null? или $categories
:oops: Оооо... Прошу прощения за свою тупость. Используя МНТ разобрался.
Я пытался обратиться к $cat в файле _form.php, а оказывается нужно сначала в create.php передавать этот массив в форму

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

echo $this->renderPartial('_form', array('model'=>$model,'cat'=>$cat)); 
вот так.
Спасибо всем за ответы.
В принципе ничего нет невозможного.
— Вы думаете?
— Для человека. С интеллектом.

Ответить