質問があります。設定(ID、名前)を持つdbテーブルがあります。データベースからそれらを読み取った場合
$settings = $this->Setting->find('list');
各コントローラーとモデルからアクセスするには、AppController またはそのようなものでこれを行うにはどうすればよいですか?
誰かが私を助けてくれることを願っています。
ありがとう
質問があります。設定(ID、名前)を持つdbテーブルがあります。データベースからそれらを読み取った場合
$settings = $this->Setting->find('list');
各コントローラーとモデルからアクセスするには、AppController またはそのようなものでこれを行うにはどうすればよいですか?
誰かが私を助けてくれることを願っています。
ありがとう
説明:
以下のようなものを探していると思います(明らかに、独自のアプリケーションごとに微調整したいと思うでしょうが、それはアイデアです)。
アプリコントローラーでは、
コード:
/**
* Read settings from DB and populate them in constants
*/
function fetchSettings(){
$this->loadModel('Setting');
$settings = $this->Setting->findAll();
foreach($settings as $settingsData) {
$value = $settingsData['Setting']['default_value'];
//note: can't check for !empty because some values are 0 (zero)
if(isset($settingsData['Setting']['value'])
&& $settingsData['Setting']['value'] !== null
&& $settingsData['Setting']['value'] !== '') {
$value = $settingsData['Setting']['value'];
}
Configure::write($settingsData['Setting']['key'], $value);
}
}
次に、アプリのどこからでもアクセスできますConfigure::read('myVar');
Configure 変数に関するCakePHP の本からの警告。(この場合は問題なく使用できると思いますが、覚えておくべきことがあります):
CakePHP の Configure クラスを使用して、アプリケーションまたはランタイム固有の値を保存および取得できます。注意してください。このクラスでは何でも格納でき、コードの他の部分で使用できます。CakePHP が設計された MVC パターンを壊したくなる誘惑にかられます。Configure クラスの主な目的は、多くのオブジェクト間で共有できる変数を集中管理することです。「構成よりも慣例」に従うことを忘れないでください。そうすれば、私たちが設定した MVC 構造を壊してしまうことはありません。