私はZend Frameworkの使い方を習得しようとしており、現在次の問題に直面しています。 私は特定の投稿のデータベースからいくつかの情報を読んでいます。私はDatamapperとModelsを使用します。foreachループのない配列内のオブジェクト要素にアクセスする方法
$postMapper = new Application_Model_PostMapper();
$post = new Application_Model_Post();
$details = $postMapper->find($postID, $post);
$this->view->postDetail = $details;
私の見解では、すべての投稿情報を読むためにforeach($ this-> postDetailを$値として使用します)。しかし、私がforeachなしで情報にアクセスできるかどうか、私は今考えていました。私はコントローラの電子メールアドレスだけが必要で、なぜforeachが必要なのかわかりません。しかし、どうすればこの情報にアクセスできますか? Zend_Debugは、以下の結果が付属しています:それは非常に愚かな質問のように聞こえるんが、私はちょうどコントローラ内部のメールアドレスを読み出すための方法を見つけることができません
array(1) {
[0] => object(Application_Model_Post)#87 (27) {
["_email":protected] => string(10) "[email protected]"
。誰かが私にヒントを与えることができますか?
こんにちは、はい、自分のモデルにGetとSetメソッドがあります。私はDatamapperで使っています。私はDatamapperからControllerに情報を返し、そこからViewに戻すよりも、ビューでは、私はそれをForeachループで読みました。私が今しようとしているのは、コントローラの内部で電子メールアドレスを取得することだけです。私は\t \t 'foreachの($ $値などの詳細)を使用する場合 \t \t { \t \t \tエコー$値 - > postEmail。 \t \t} '私のコントローラでは動作しますが、実際にはforeachが必要ですか?要素なしで要素にアクセスする方法はありますか? – Luka
$ postMapperはモデルを正しく返します。したがって、$ details-> getEmail()を使用してください。私はそれが明らかなビットであると思うだろう。 – Layke
いいえ、 '$ details-> getEmail()'を使用した場合、次のエラーメッセージ '非オブジェクト上のgetEmail()メンバ関数への呼び出し 'を取得しましたが、 $ post-> getEmail() 'これは意味がありますか?私は、すべての情報が既に読み込まれていて、$ detailsに保存されていることを意味しますが、私はそれを使用していないようです... – Luka