Дорогие форумчане задача моя проста для Вас, но мне не хватает элементарного чего-то
Ситуация такая:
В представлении у меня 10 фотографий предметов и мне надо перейти в детальный вид каждого предмета где находится по 3 фотографии этого же предмета. Верстальщик использует ZURB Foundation 5 для адаптивной верстки.
Я пробовал использовать ImageButton(), однако такие изображения становятся не адаптивны т.к. не понимаются этим фреймворком как изображения.
Идея:
При нажатии на картинку передать её "name"=>"1", в контроллере взять эту переменную и передать её в вид, а в виде из папки под этим номером вытащить через цикл все фотографии этого предмета. В итоге получается один шаблон для всех предметов и другой для детального вида этих предметов, просто в каждый я передаю номер необходимой мне папки... там уже можно использовать для получения всех файлов scandir().
Вопрос следующий:
Мне надо по клику на изображении передать значение которое подвязываю к нему через HtmlOptions.
Подскажите есть ли какие-то методы или приемы для такой вот операции.
Просто я не хочу делать для каждого детального вида отдельные экшены (для чего их намножать-то )
Заранее благодарен.
НЕМОГУ ПЕРЕДАТЬ ЗНАЧЕНИЕ ИЗ ПРЕДСТАВЛЕНИЯ В КОНТРОЛЛЕР
-
- Сообщения: 7
- Зарегистрирован: 2014.05.29, 12:18
Re: НЕМОГУ ПЕРЕДАТЬ ЗНАЧЕНИЕ ИЗ ПРЕДСТАВЛЕНИЯ В КОНТРОЛЛЕР
Оберните главную фотографию в ссылку, через ссылку передавайте в контроллер параметр, методом GET.
-
- Сообщения: 7
- Зарегистрирован: 2014.05.29, 12:18
Re: НЕМОГУ ПЕРЕДАТЬ ЗНАЧЕНИЕ ИЗ ПРЕДСТАВЛЕНИЯ В КОНТРОЛЛЕР
Скажите я в представлении делаю так:
В контроллере:
Кроме того дополнительный вопрос возникает: "Как мне в правилах валидации описать этот экшн"?
После всех попыток решение не найдено.
Код: Выделить всё
<li style="margin: 15px"><?php echo CHtml::link('Item', $this->createUrl('/default/ItemCollection/', array('id'=>1))) ?></li>
Код: Выделить всё
//Пытаюсь словить мой переданный GET:
public function actionItemCollection($id)
{
if(isset($id)){
var_dump($id); exit();
}
$this->render('views.itemCollection.index', ['id' => $id]);
}
Код: Выделить всё
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array('index', 'ItemCollection''), // "ItemCollection($id)" какой вариант правильный?
'roles' => array(Roles::ROLE_GUEST),
)
}
-
- Сообщения: 7
- Зарегистрирован: 2014.05.29, 12:18
Re: НЕМОГУ ПЕРЕДАТЬ ЗНАЧЕНИЕ ИЗ ПРЕДСТАВЛЕНИЯ В КОНТРОЛЛЕР
Благословен Господь! Благодарю пользователя badjo за то что толково подсказал где искать ответ. Решение такое:
Представление:
Контроллер:
На выходе... долгожданная:
Конечно же main.php:
Представление:
Код: Выделить всё
<?php ExtHtml::link('ItemCollection','/default/ItemCollection/1') ?>
Код: Выделить всё
//Пытаюсь словить мой переданный GET:
public function actionItemCollection()
{
if(isset($_GET)){
var_dump($_GET); exit();
}
$this->render('views.itemCollection.index', ['id' => $id]);
}
Код: Выделить всё
array (size=1)
1 => string '' (length=0)
Код: Выделить всё
// uncomment the following to enable URLs in path-format
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array(
'<module:\w+>/<controller:\w+>' => '<module>/<controller>/',
'<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<module>/<controller>/<action>/<id>',
'<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
'showScriptName' => false,
),