2012-03-12 8 views
0

これはちょっと複雑ですが、私はできるだけシンプルに説明しようとします。MVCフレームワークで配列を渡す

私はすべてのアクティビティを実行し、配列に情報を格納するModelクラスを持っています。

新しいModelクラスを作成し、Modelクラスから必要なアクションを呼び出してアクティビティを実行するControllerクラスがあります。

しかし、すべてがViewファイルから発生する必要があります。そこで私はViewファイルからフォームを送信し、ページをリフレッシュしてリフレッシュすると、コントローラクラスはフォームが送信されたかどうかをチェックし、trueならモデルクラスからオブジェクトを作成し始めます。

ここで私は問題を抱えています。コントローラクラス内のページをリダイレクトする必要があります。基本的には、Modelクラスから送信されたデータに従ってControllerクラス内で実際にアクションを呼び出すことです。例えば

私のControllerクラスには、新しいModelオブジェクトを作成してModelアクションを呼び出すコンストラクタがあり、ifおよびelseステートメントでModelクラスから送信されたデータをチェックします。

ここでは、それが呼び出す値に基づいて/コントローラクラスの2つの他のアクションにリダイレクトします。私は

header("model/controller/"); 

使用してリダイレクトするようしかし、私の配列が失われていると私はビューにコントローラからの私の配列を渡すことができます方法はありません。

私は

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

を試みたとURLを通すいます。しかし、私はむしろそれをURLで渡すことはしません。

私が達成しようとしていることを達成することさえ可能ですか?

また、申し訳ありませんが、これは単純な質問または非常に悪いプログラミングの練習かもしれない、私はちょうど学んでいます。批判は大歓迎です。

答えて

1

あなたは何を求めているのですか2つのHTTPリクエストの間でデータを保持する方法と答えは通常sessionsです。それはMVCとは関係ありません。

私はそのようにそれを渡すための唯一の方法は

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

し、モデルの使用で、このコードを、それらを受け使用することだと思います

+0

モデル、ビュー、コントローラがお互いに振る舞うために、私はそう言った。私はファイルの分離のためでなければ、最初にこの問題を抱えませんでした。しかし、はい、私はセッションのことも考えていました。なぜなら私たちが避けようとしている理由は、私たちが特定の方法でセッションを扱う単純化されたフレームワークなのでです。 – shriek

0

$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

あなたのために働くことを幸せ..幸運 –

関連する問題