2012-03-12 3 views
0

Итак, это немного сложно, но я попытаюсь объяснить это как можно проще.Передача массивов в фреймворке MVC

У меня есть класс Model, который выполняет всю деятельность и хранит информацию в массивах.

У меня есть класс Controller, который создает новый класс Model и вызывает требуемое действие класса Model для выполнения этой операции.

Но все, что должно произойти из файла View. Поэтому я отправляю форму из своего файла View, обновляю страницу и обновляю, класс Controller проверяет, была ли форма отправлена ​​или нет, если она истинна, тогда она начинает создавать объект из моего класса Model.

Теперь у меня возникла проблема. Я снова должен перенаправить страницу в классе Controller, в основном то, что она делает, - это обновление, которое на самом деле вызывает действие внутри самого класса Controller в соответствии с данными, отправляемыми классом Model. например,

В моем классе контроллера есть конструктор, который создает новый объект Model, вызывает действие Model и имеет оператор if и else для проверки данных, отправляемых классом Model.

Теперь, исходя из значения, которое оно вызывает/перенаправляет на мои два других действия в классе контроллера. Но, как я перенаправлять с помощью

header("model/controller/"); 

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

Я попытался

header("model/controller/".$array); 

и пропуская его через URL. Но я бы предпочел не передавать его по URL-адресам.

Так можно ли достичь того, чего я пытаюсь достичь?

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

ответ

1

Что вы спрашиваете: Как сохранить данные между двумя HTTP-запросами, и обычно используется ответ sessions. Это не имеет никакого отношения к MVC.

+0

Я сказал, что из-за того, как Model, View и Controller ведут себя друг с другом. У меня не было бы этой проблемы в первую очередь, если бы не разделение файлов. Но да, я тоже думал о сеансах, поэтому я стараюсь избегать, потому что упрощенная структура, с которой мы имеем дело с сеансом, определенным образом. – shriek

0

Я думаю, что единственный способ передать его, как это использовать

$data = implode('/',$array); 
header("model/controller/".$data); 

и при получении их в вашем использовании модели этого кода:

$data = explode('/',fun_get_args()); 
// OR 
$data = explode('/',$requestURL); 
// $requestURL to be replaced with a function depending on your MVC 

Надеется, что это может помочь вам

+0

Это интересный подход. Я продолжу тестирование кода и дам вам знать, как это происходит. – shriek

+0

У меня это работает :) хотя и в другом подходе, но идея была в основном одинаковой. Вместо '/' я использовал ';' потому что/обрабатывается специально в нашем MVC. Спасибо за подсказку.^_^ – shriek

+0

Счастлив, что он работает на вас .. Удачи –

Смежные вопросы