• 締切済み

cakephpの質問2つ

2つ質問させてください。 cakephpで、ホームページの左に項目を追加したいのですが (ホームページによくあるホームページ内リンク、ホームページ内の検索フォーム)、 layoutで指定できるのは、調べた限り、$title_for_layoutと$content_for_layoutだけでした。 当然、コントローラで取得した値は、メインの真ん中にしか、適応できず、左に適応させると、 今度はメインの真ん中の処理ができなくなってしまいます。 $content_for_layoutなどの変数(例:$sub_content_for_layout)を別個作る必要があるのでしょうか。また、そうであれば、 どのファイルに追記する必要がありますか。 コントローラで、ある変数を条件にfind()で1件だけレコードを取得して、そのデータをviewで使いたいのですが、 setした$dataの構造が確認できず、$arr['id']などの情報が取得できません。$data['テーブル名']としてviewに書くと、 すべてのカラムがAと表示され、うまくいきません。 controller: public function index(){ $cond = param['url']['name']; $data = $this->Table->find($cond); } view hoge.ctp: $arr = $data['Table']; foreach($data as $key){ echo $arr['id']; echo $arr['name']; echo $arr['phone']; } 以下、html~ 本やネットなどで調べましたが、当該情報が得られませんでした。お手数ですが、ご回答願えないでしょうか。

みんなの回答

回答No.1

■サイドメニューなどを作る場合 Viewのメソッド、elementを利用されてはいかがでしょうか。 <?php echo $this->element('your_element')?> views/elements/your_element.ctp にファイルを設置すればこれでテンプレート内で呼び出せます。 ■$this->Table->find($cond) よくわかりませんが、パラメータの指定方法は一度確認されたほうが良い気がします。 cakephp1.3系統なら、findで1レコードのみ取得するなら、 $data = $this->Table->find('first', array('name' => $param)); とかといった書き方になると思います。 また、中がどのような値なのかを確認するなら、普通にvar_dumpなどで確認されたらよいのではないでしょうか。