PHP5.3でCI2.0を使用しています
「DatamapperORM」を使い始めたばかりで素晴らしいです!ただし、クラスの名前に関する1つの大きな問題です。
「users」というデータベーステーブルがあるので、dmモデルは「user」であり、同じ名前の「user」のコントローラーもありますか?
したがって、「ユーザー」コントローラー内で「ユーザー」モデルを使用することは不可能です。
この問題を解決するための最良の方法は何ですか?
どうもありがとう
よろしくお願いします
PHP5.3でCI2.0を使用しています
「DatamapperORM」を使い始めたばかりで素晴らしいです!ただし、クラスの名前に関する1つの大きな問題です。
「users」というデータベーステーブルがあるので、dmモデルは「user」であり、同じ名前の「user」のコントローラーもありますか?
したがって、「ユーザー」コントローラー内で「ユーザー」モデルを使用することは不可能です。
この問題を解決するための最良の方法は何ですか?
どうもありがとう
よろしくお願いします
CodeIgniter の欠点の 1 つは、コントローラー、モデル、またはライブラリーに同じ名前を付けられないことです。これは主に PHP の問題ですが、明らかに同じ名前を付けることはできませんが、2 つの方法で回避できます。
現時点で私が推奨できるのは、モデルとライブラリに慎重に名前を付けることです。
コントローラ - ユーザー
ライブラリ - ユーザー
モデル - User_model | ユーザー_m
面倒ですが、今のところはそのうちの 1 つにすぎません。
したがって、「ユーザー」コントローラー内で「ユーザー」モデルを使用することは不可能です!!
そうではありません。ユーザーガイドをもっと注意深く確認する必要があります ;)
モデルに、最初に定義された名前以外の名前を付けることができます。
モデルを別のオブジェクト名に割り当てたい場合は、ロード関数の 2 番目のパラメーターを介して指定できます。
$this->load->model('Model_name', 'fubar');
$this->fubar->function();
コントローラのファイル名とクラス名を「Users」に変更するだけです。モデル名を変更する必要はありません。
コントローラ:ユーザー
モデル:ユーザー
データベーステーブル:ユーザー
Datamapperのドキュメントをご覧ください。
「プロジェクト」の場合、次のように名前を付けました。
コントローラー:
プロジェクトは MY_Controller を拡張します CI_Controller を拡張します
モデル:
ProjectModel はモデルを拡張します
View
project/projectManager // メイン コンテンツとして
project/_projectItem // サブビューとして _ アンダースコアを使用
それはまったくうまくいきます。
私はお勧めします:
コントローラーの User と Users という単語を保持して、適切な URL を保持します。
モデルとコントローラーの複数形または単数形の使用に一貫性を持たせてください。