質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

1199閲覧

cakePHPでよく利用する独自の変数の取扱いについて

ssk

総合スコア332

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

1クリップ

投稿2016/11/16 06:54

編集2016/11/16 07:18

cakePHP3でよく利用する変数(配列が格納されたものなど)は
どのフォルダに保存し、どのように呼び出せば利用できますか?

✓追記
ーーーーーーーーーー
新規登録・編集で使用する連想配列の中身 変数$listを他の場所で管理して利用する際に呼び出さればと、、
そもそもこの考え方が間違っていますかね><

$list = array('sample01' => 'サンプル2','sample02' => 'サンプル2'、、、、、、);
echo $this->Form->input('sample',array(
'type' => 'select',
'options' => $list

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

popobot

2016/11/16 07:03

変数とは具体的にどのようなものでしょうか?
ssk

2016/11/16 07:05

icchii様、ありがとうございますm(_ _)m 変数の中身は連想配列です。
popobot

2016/11/16 07:09

どんな内容で、どう使うものかによって、どこに定義するのがいいのかは変わってくる思うので、一概には言えないと思いますよ
ssk

2016/11/16 07:19

icchii様 追記しましたm(_ _)mご確認の程、よろしくお願い致します。
guest

回答1

0

ベストアンサー

自分は、Tableのカラムに設定する値の候補とかはTableクラスに定義していますね。
※あくまでTableに関連する情報なのでここに定義しています。

php

1class HogesTable extends Table { 2 public $options = array( 3 'sample' = array( 4 'sample01' => 'サンプル2', 5 'sample02' => 'サンプル2', 6 ), 7 ); 8}

Controllerでは単にsetする。

php

1$this->set('hoges_options', $this->Hoges->options);

Viewでは以下のような感じです。

php

1echo $this->Form->input('sample',array( 2 'type' => 'select', 3 'options' => $hoges_options['sample'], 4));

投稿2016/11/16 07:43

popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssk

2016/11/17 02:39

icchii様 ありがとうございます。 教えていただいたように進めて、実装することができましたm(_ _)m
ssk

2016/11/17 03:18

HogesController.php $this->set('hoges_options', $this->Hoges->options); を追加する際、使用したいファイルに対応する箇所 例: public function index() public function add() の2箇所に書かないとダメでしょうか?一箇所にまとめる方法はありますか?
ssk

2016/11/17 03:35

助かりました><いつもありがとうございます。
ssk

2016/11/17 06:49

icchii様 以下の$optionsをedit.ctpで呼び出そうとするとnullになってしまします。 add.ctpとindex.ctpでは呼び出せているんですが、edit.ctpでは呼び出せないのでしょうか? class HogesTable extends Table { public $options = array( 'sample' = array( 'sample01' => 'サンプル2', 'sample02' => 'サンプル2', ), ); }
popobot

2016/11/17 07:22

同じコントローラであれば、できるはずです。
ssk

2016/11/17 07:28 編集

class HogesTable extends Table { public $options = array( 'sample' = array( 'sample01' => 'サンプル2', 'sample02' => 'サンプル2', ), ); } ↑こちらの内容を/src/Model/Table/hogesTable.ctpに追記したのですが、追記する場所が間違っていますかね?><
popobot

2016/11/17 07:34

あっていると思いますけど... index.ctpやadd.ctpでは動いたんですよね??
ssk

2016/11/17 07:35

はい。index.ctpやadd.ctpでは動いています。
ssk

2016/11/17 07:37

edit.ctpの内容です。 Undefined variable: optionsと表示されます。 $selected = h($hoge->sample); echo $this->Form->input('sample',array( 'type' => 'select', 'options' => $options['sample'], 'selected' => $selected ));
popobot

2016/11/17 07:38

ならあっていると思いますよ。edit.ctpでも同様だと思いますけど... debug();とかで値があるかみてみたりしてみてください。
popobot

2016/11/17 07:39

$hoges_optionsではなくて?
ssk

2016/11/17 07:46

仰る通りでした。 他のaddとeditはコントローラを$hoge_optionsから$optionsに変更していたため 表示されていました。 簡単なミスでicchii様の貴重なお時間を頂戴してしまい、本当に申し訳ございせんでした。
popobot

2016/11/17 08:42

いいえー ちなみにdebug_kitは使っていますか? setした値が一覧で見れたりするのでとても便利ですよ
ssk

2016/11/17 08:48

ありがとうございます>< debug_kitも調べて利用できるようにします。 今後とも、よろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問