Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/65: Рейтинг темы: голосов - 65, средняя оценка - 4.89
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6

Модель MVC, передача данных из контроллера в вид?

04.04.2012, 06:49. Показов 12775. Ответов 32

Студворк — интернет-сервис помощи студентам
как правильно организовать передачу данных из контроллера в вид?
как-то у меня в голове не укладывается как это сделать, напр. есть:
контроллер wind.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
 
 $data = array(1,2,3,4,5);
 
 $_POST[veter]="лева";
 $_GET[veter]="права";
 
  require_once('views/windview.php');
// удивительно но если сделать через редирект с передачей get, 
// то будет работать, только это "редирект", а не т.с. подхват файла, 
// поэтому этот вариант сразу отпадает, но я напишу тоже чтобы вы видели что я имел в виду:
// header('Location: views/windview.php?veter=лева');
  exit;
 
 ?>
и вид windview.php

PHP
1
2
3
4
<?php 
 echo "Ветер дует с $_POST[veter]";
 echo "Ветер дует с $_GET[veter]";
 ?>
хотелось бы чтобы и массив возможно было передать, вообще передать любые данные из контроллера в вид.
Естественно в MVC в таком случае форма не совсем то что нужно, я сейчас прекрасно понимаю что полный бред написал, но я это специально сделал чтобы было понятно что не получается.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2012, 06:49
Ответы с готовыми решениями:

Передача данных их контроллера в views
Здравствуйте, МБ вопрос совсем не точный, изучаю ООП и стопарнулся на таком этапе: Класс View class View { public $template_view =...

Передача некоторых данных в шаблон MVC
У меня таблица User с данными: name mail bla bla bla, и мне понадобилось выводить name на каждой странице сайта. Как правильно реализовать...

MVC передача данных между моделью и представлением
Однако Здрасьте! В целях обучения ООП, решил переписать один прект с использованием mvc. В принципе все понятно, но есть некоторые...

32
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
04.04.2012, 09:17
ob_start
extract
1
 Аватар для Alex_pac
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
04.04.2012, 10:59
вид это прежде всего шаблонизатор. и тупой include это не шаблон вида.

так что используй какой либо шаблонизатор для php

xtemplate или smarty

тогда у тебя вид действительно будет отделен от контроллерра. и передача параметров будет на лицо.
1
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
04.04.2012, 11:58
и тупой include это не шаблон вида.
Никто не говорил про тупой include. Я привел пример умного include шаблона с передечей параметров.
0
4 / 4 / 0
Регистрация: 05.04.2012
Сообщений: 8
05.04.2012, 20:32
А я не вижу смысла тратить время на изучение smarty только ради реализации идеи MVC. Ведь сама по себе идея не диктует нам потребность молиться богу до расшиба лба. Полноценная передача данных из контроллера в вид возможна только в том случае, если мы все данные подключаем и обрабатываем по ходу исполнения одного !!! файла index.php. Отправка формы и переходы по гиперссылкам ведут нас на одну точку входа - index.php. Любая другая идея сразу же ставит нас перед необходимостью использовать базу данных MySQL. То есть еще раз повторю: Весь сайт работает с одной точкой входа index.php и тогда такого вопроса в форум не будет.
1
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
05.04.2012, 21:47  [ТС]
да в том-то и дело что пример не могу найти как это реализовать без всяких-там фабрик и smarty, последнее кстати мне вполне доступно оказалось, ничего там сложного, я замахнулся сделать свой MVC уже + используя этот самый смарти, т.е. MVC отдельно, Smarty отдельно, естественно что нихрена у меня не вышло сходу, так как примеров зысь.

пример того как скоординировать модель+вид+контроллер, вот все по идее выводится в index.php, а как этот вид черт знает откуда передать в этот index.php, со всеми его формами и переменными, в kohana это реализовано через фабрику, в smarty, а что в smarty, это же просто шаблонизатор, так что он тут менее "причем".
0
4 / 4 / 0
Регистрация: 05.04.2012
Сообщений: 8
06.04.2012, 12:09
ОК, вопрос не мальчика но мужа! Ответ тут в разделе Ядро можно уже посмотреть конкретные примеры, читать прийдется много!
2
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
06.04.2012, 13:04  [ТС]
спасибо, читать "много" меня никогда не останавливало!
0
4 / 4 / 0
Регистрация: 05.04.2012
Сообщений: 8
06.04.2012, 13:09
Ну спасибо в карман не положишь, +1 нажми если помог!
1
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 3
26.07.2012, 08:41
Система MVC довольно хорошо реализована на Codeignihter

Контроллер:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Page extends CI_Conroller      //Ваш контроллер "Page" расширяет родной CI контроллер
{
    public function __constract()
    {
        parent::__constract();  //Конструктор родительского объекта
        $this->load->model(''); //Загрузка модели в конструкторе
    }
 
 
    public function show() //Функция "show" выдергивает данные из базы
    {
       $data = array(); //Объявление массива
       $data['info'] = $this->page_model->get(); //Дергаем данные с базы
       $this->load->view('page_view',$data); // В этой строке и идет загрузка массива с данными в вид
    }
}
А в виде уже выводите с помощью 'foreach' только уже не через $data, а через $info

В адресной строке "www.вашсайт.ru/index.php/page/show/".
0
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
26.07.2012, 08:46  [ТС]
код научись редактировать, я уже давно на kohana пижу, но спс.
0
26.07.2012, 09:49

Не по теме:

Цитата Сообщение от pilulkin-vlad Посмотреть сообщение
public function __constract()
{
parent::__constract(); //Конструктор родительского объекта
работает конструктор то, а?)) или даже вернее констрактор :D

0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
26.07.2012, 10:59
каши в голове детектед. причем тут смарти? МВС - это абстракция, паттерн.

Вот вики почитайте - http://ru.wikipedia.org/wiki/M... D1.85_PHP5 вот так и передаются данные в вид.

грубо говоря, контроллер - это связующий элемент между моделью и видом. модель отдает данные, которые контролер и пихает в вид. вид - это просто обертка над данными, которая умеет их выводить в виде HTML через какую-либо шаблонизацию (смарти или native php)
0
26.07.2012, 13:14

Не по теме:

Цитата Сообщение от Капитан Очевидн Посмотреть сообщение
Сообщение от pilulkin-vlad
Система MVC довольно хорошо реализована на Codeignihter
Codeignihter использует MVC систему
ник вовсю оправдывает посты :rofl:

0
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 3
26.07.2012, 15:48
Писал быстро, ошибся, с каждым бывает, ты вместо того, что - бы языком чесать KOPOJI, предложил бы свой вариант реализации данного вопроса.
0
weboman
 Аватар для Schtrich
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
26.07.2012, 15:49  [ТС]
Я вот сколько не пишу у меня всегда по-разному контроллер вывода получается.
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
26.07.2012, 19:09
А на фига тащить данные через контроллер если вид сам может запросить у модели те данные что ему надо отрендерить
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
26.07.2012, 19:14
Цитата Сообщение от caballero Посмотреть сообщение
А на фига тащить данные через контроллер если вид сам может запросить у модели те данные что ему надо отрендерить
смотря как это вид сделает. пример можно?
если речь об этом, то возможно

PHP
1
2
3
<html>
<? $userOnject->getUserInfo()->getName() ?>
</html>
но что будет при внештатной ситуации? ошибка на весь экран?
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
26.07.2012, 19:29
смотря как это вид сделает. пример можно?
как напишешь так и сделает

но что будет при внештатной ситуации? ошибка на весь экран?
А как тебя контроллер спасет от ошибки?
Капитан очевидность считает чтобы не было ошибок проект нужно тестировать и всякие ситуации коректно обрабатывать.
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
26.07.2012, 19:35
Цитата Сообщение от caballero Посмотреть сообщение
А как тебя контроллер спасет от ошибки?
элементарно.
PHP
1
try { $userdata = $userOnject->getUserInfo()} catch (Exception $e) { $userdata = null;}
в вид отдаем только $userdata. Вид может проверить $userdata и если там ничо нет, то красиво показать пользователю сообщение об ошибке:

PHP
1
2
3
4
5
<? if (!$userdata): ?>
   <p>Пардон</p>
<? else: ?>
    Имя пользователя: <?=$userdata->getName()?>
<? endif; ?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.07.2012, 19:35
Помогаю со студенческими работами здесь

spring-mvc передача данных из контроллера в view
у меня возникла проблема. пробую писать жалкое подобие сайта на Java. и мне необходимо передавать данные между контроллером и вьюхой....

Передача данных внутри контроллера
Нужно передать массив строк из одного действия контроллера в другое. Вариант с TempData не очень устраивает, т.к. при обновлении страницы...

Передача данных из одного контроллера в другой
Приветствую всех. Подскажите, как мне передавать данные от одного микроконтроллера к другому на большое расстояние и без использования...

Передача данных между методами контроллера
Доброго времени суток. Ситуация следующая: в контроллере есть вот такие вот экшны public ActionResult ExecuteQuery(int id, int...

Передача данных из CKEditor в метод контроллера
В общем код представления: &lt;html&gt; &lt;head&gt; &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&gt; &lt;title&gt;EditC&lt;/title&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru