получить параметр во view
получить параметр во view
хочу во вью получить параметр из строки запроса
например такой урл ?r=blabla&id=1
хочу получить 1, пока вижу вариант $_GET['id'], хотел через $id но ругается
или правильно передать id через параметр при рендеринге?
например такой урл ?r=blabla&id=1
хочу получить 1, пока вижу вариант $_GET['id'], хотел через $id но ругается
или правильно передать id через параметр при рендеринге?
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: получить параметр во view
В MVC правильно обрабатывать запросы пользователя в контроллере.
Код: Выделить всё
Yii::app()->request->getQuery('id);
Жду Yii 3!
Re: получить параметр во view
mc-bear писал(а):В MVC правильно обрабатывать запросы пользователя в контроллере.Код: Выделить всё
Yii::app()->request->getQuery('id);
так я хочу тупо вывести переменную, ничего обрабатывать не собираюсь
банально вывести- редактирование записи id = $_GET['id']
Re: получить параметр во view
mc-bear писал(а):то что вводит пользователь должно проверяться
ну есть урл http://bla/news.php?id=1
при загрузке ясен пень проверю ид, а как теперь вывести этот же ид?
отобразить его на странице
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: получить параметр во view
если ты его проверил, то сделал это в контроллере (не в представлении же!!!) значит передавай его в представление параметромzibert02 писал(а):ну есть урл http://bla/news.php?id=1
при загрузке ясен пень проверю ид, а как теперь вывести этот же ид?
отобразить его на странице
Жду Yii 3!
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: получить параметр во view
я использую просто $_GET во вьюхе, а в контроллере проверяю входные данные с помощью модели. Это на пару строк сокращает объем кода, и во вьюху не надо передавать доп. параметры.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: получить параметр во view
Макс, появляется впечатление что ты очень ленивый кодер ) уже не первый раз твой довод лишняя строчка в коде )))
Жду Yii 3!
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: получить параметр во view
Ну так и есть в принципе. Я за принцип - меньше кода и работы + KISS и тайм-менеджмент.
Re: получить параметр во view
а как быть с виджетом?
получается мне надо в каждом контроллере обрабатывать переменную из урла, слать потом ее в вью, а из вью передавать в виджет?
получается мне надо в каждом контроллере обрабатывать переменную из урла, слать потом ее в вью, а из вью передавать в виджет?
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: получить параметр во view
На самом деле MVC очень размытое понятие, и в вашей схеме виджет может сам брать $_GET параметр как это делают некоторые компоненты yii, например, CSort и CPagination.
Лично я подобных случаях делаю так:
И уже во вьюхе можно подключать виджет, который будет использовать параметр из $_GET . Передавать его виджету необязательно, как и проверять по-новой. О проверке уже модель позаботилась и если что не так, то управление просто не дойдет до виджета. Все зависит от конкретной ситуации, поэтому однозначно верного решения быть не может.
Лично я подобных случаях делаю так:
Код: Выделить всё
public function actionIndex()
{
$model=new MyModel();
$model->attributes=$_GET['some param'];
if(!$model->validate())
throw new CHttpException(404);
$this->render('index');
}
И уже во вьюхе можно подключать виджет, который будет использовать параметр из $_GET . Передавать его виджету необязательно, как и проверять по-новой. О проверке уже модель позаботилась и если что не так, то управление просто не дойдет до виджета. Все зависит от конкретной ситуации, поэтому однозначно верного решения быть не может.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: получить параметр во view
Ekstazi, по твоей логике зачем тогда в модель передавать $_GET[someParams], пусть модель сама все делает.
не правильно это ИМХО.
по поводу виджета, я бы не стал путать представление и виджет!
я определяю виджет как мини-контроллер, который имеет свои представления,
а представление это только генератор html (хотя не обязательно , в общем ответа пользователю на его запрос), в нем никаких манипуляций с данными, только вывод
не правильно это ИМХО.
по поводу виджета, я бы не стал путать представление и виджет!
я определяю виджет как мини-контроллер, который имеет свои представления,
а представление это только генератор html (хотя не обязательно , в общем ответа пользователю на его запрос), в нем никаких манипуляций с данными, только вывод
Жду Yii 3!
Re: получить параметр во view
про виджет я спросил чтобы не открывать новую тему
как я вижу- виджет это многоповторяющаяся связка контроллер+вью
что хорошо в контроллере-в качестве параметра можно указать имя переменной из урл и потом работать с переменной
а в виджете приходится явно получать переменную через Yii::app()->request->getQuery('category_id');
как я вижу- виджет это многоповторяющаяся связка контроллер+вью
что хорошо в контроллере-в качестве параметра можно указать имя переменной из урл и потом работать с переменной
а в виджете приходится явно получать переменную через Yii::app()->request->getQuery('category_id');
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: получить параметр во view
ну это спорная фича, в Kohana 3, например, ее убрали )zibert02 писал(а):что хорошо в контроллере-в качестве параметра можно указать имя переменной из урл и потом работать с переменной
Жду Yii 3!
Re: получить параметр во view
а в чем спорность?
неужели удобнее явно инициализировать переменные которые приходят из урла?
неужели удобнее явно инициализировать переменные которые приходят из урла?
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: получить параметр во view
для минимум две причины, но они распространяются лично ко мне
1) у меня большая часть действий вынесена в класс (extends CAction)
2) да мне привычней когда в действии явно указано что данные берутся из $_GET )
почему в Кохане убрали, надо будет поискать почитать, самому интересно, но не дошел еще до этого
1) у меня большая часть действий вынесена в класс (extends CAction)
2) да мне привычней когда в действии явно указано что данные берутся из $_GET )
почему в Кохане убрали, надо будет поискать почитать, самому интересно, но не дошел еще до этого
Жду Yii 3!
- resurtm
- Сообщения: 299
- Зарегистрирован: 2010.12.19, 09:13
- Откуда: Казахстан, Алма-Ата
- Контактная информация:
Re: получить параметр во view
Заранее объявленный порядок переменных в экшне убивает всю гибкость роутинга в кохане.
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: получить параметр во view
Ну каждый делает по-своему. Посмотри какой код генерирует gii:mc-bear писал(а):Ekstazi, по твоей логике зачем тогда в модель передавать $_GET[someParams], пусть модель сама все делает.
не правильно это ИМХО.
по поводу виджета, я бы не стал путать представление и виджет!
я определяю виджет как мини-контроллер, который имеет свои представления,
а представление это только генератор html (хотя не обязательно , в общем ответа пользователю на его запрос), в нем никаких манипуляций с данными, только вывод
Код: Выделить всё
public function actionUpdate($id)
{
$model=$this->loadModel($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Model']))
{
$model->attributes=$_POST['Model'];
if($model->save())
$this->redirect(array('view','id'=>$model->Id));
}
$this->render('update',array(
'model'=>$model,
));
}
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: получить параметр во view
И еще, виджет все таки во вьюхе вызывается. И если в нем идет обработка параметров из $_GET то тогда, в зависимости от контекста, надо передавать это либо как параметр к виджету, либо в самом виджете каким-то образом проверить этот параметр.