0

コンポーネントのビルド、バージョン 1.5 (すぐに取り外されることはわかっていますが、それは私が作業する必要があるものです。)

/admin/tables/mycom.php ファイルの問題。( mycom はコンポーネント名が何であれ)

私はこのファイルの使用に従っていません。ウォークスルーを読むと、JTables を拡張するテーブル クラスが作成されます。

現在、使用している DB 列名の一部に「スペース」文字が含まれています。つまり、'field1' の代わりに 'field 1' です (質問しないでください。これは私のデータではありません)。

これらのフィールドを識別するための構文は次のとおりです。

 $myfield = null

これらは mySQL テーブルのフィールドを参照すると書かれていますが、私のフィールド名にはこの構文では機能しないスペースが含まれています。

このクラス、それはphpファイルであり、それが何を使用しているのかを理解するのに役立ちます。

4

1 に答える 1

1

テーブルの JTable クラスを作成すると、テーブルを編集するためのコードのほとんどが自動的に作成されます。Joomla ライブラリーの JTable に慣れ親しむことをお勧めします。これにより、使用およびオーバーライドできる事前に作成された関数を理解できるようになります。

DB列名にスペースが含まれているという問題については...正直なところ、それは悪い考えです。ここでは、MySQL 命名規則のベスト プラクティスをいくつか紹介します。

  • キャメルケースの代わりに常にアンダースコア付きの小文字を使用してください。テーブル名と列名の両方に適用されます。(FirstName の代わりに first_name、Address1 の代わりに address_1
  • すべてのテーブルには、主キーとして「id」列が必要です。それを UserID などと呼ばないでください。
  • テーブル名は複数形にする必要があります (プロファイル、サポートなど)。
  • 外部キーには、関連するテーブルの単数形の名前の後にアンダースコア ID が続く必要があります。例: 「profile_id」または「support_id」。

可能であれば、MySQL に対して ALTER TABLE の更新を行うことをお勧めします。

ALTER TABLE `#__example` CHANGE `Field 1` `field_1` VARCHAR(50) NOT NULL DEFAULT 'empty';
于 2012-11-21T22:00:08.837 に答える