2012-03-11 12 views
1

Usersは多くがInstrumentsですが、Instrumentsは静的なので、データベースから検索するのではなく、定義済みの定数配列を参照して使いたいと思います。このアレイは、によってアクセス可能である必要があります。表示およびコントローラCakePHP:フォームフィールドの定数配列を使用

ランダムな無関係な定数の束が詰まっていると感じることもあります。bootstrapは混乱しています。

これを行う最善の方法は何ですか - この配列はどこに配置しますか?

+0

あなたが知っているのは、そのためのブートストラップです。それほど気にならない場合は、libsでクラスを作成してインポートしてください。 –

答えて

0

あなたは私はあなたがそれを探していると思います列挙型のいくつかの種類を使用する場合: http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/

public static function instruments {} 

をしかし、あなたの場合にはインスツルメンツは静的であるはずのが、データと実際のテーブル(インストゥルメントbelongsToのユーザー - たとえば、同じuser_idを持つ複数の行)。 Enumは、(belongsTo関係で)逆の方法でしか動作しません。

静的でなければならない特定の理由はありますか?あなたの質問の主な問題は、データを適切に保存する方法です。どの楽器がどのユーザーに属していますか?

あなたは本当に(私はあなたの場合にはお勧めしません)ユーザーの単一の列に、このような配列リストを保存したい場合は、ビットマスクを使用することができます。 http://www.dereuromark.de/2012/02/26/bitmasked-using-bitmasks-in-cakephp/

+0

私はあなたを惑わしたようです。ユーザーには多くの楽器があります。私はデータベースに楽器を定義したくない(テーブル楽器にはギター、ピアノなどが含まれている)。代わりに、私は楽器を定義し、単にそれを配列に格納するデータを取りたいと思います。 '$ useTable = false'を使うのはいい考えです。' Instruments'モデルで静的配列を定義するだけです。 – Garrett

+0

確かに、それでも関係データ(user_id、instrument_id)をどこに格納するか説明していません。ユーザーテーブルにフィールドがありますか?またはこのデータはDBにまったく格納されていませんか? – mark

0

は、Arrayデータソースを使用してください。静的なデータ配列を定義して、関連付けを使用することができます。

関連する問題