ExpressionEngineを使用してサイトにいくつかの変更を加えていますが、理解できない概念があり、メソッドが事前に提供されている回避策をコーディングしている可能性があります。
特にチャンネルとメンバーの場合、元の作成者はいくつかのカスタムフィールドを追加しました。私は、テーブルの各列に特定の意味のある名前が付いている従来のデータベースのバックグラウンドを持っています。また、一意のキーで結合された関連テーブルを追加することで独自のデータを拡張することにも慣れています。ここでも、関連テーブルのフィールド名には意味があります。
ただし、EEでは、カスタムフィールドを追加すると、フィールドがfield_id_xとしてテーブルに作成され、これらが何であるかを示すエントリが別のテーブルに配置されます。
これは、管理者に権限を与えるためのUIの観点からはすべて優れていますが、コードを作成する際の頭痛の種です。
わかりました。テンプレートタグはありますが、私はそれらを使用しない傾向があり、とにかくデータベースクエリには適していません。
たとえばmembersテーブルでクエリを実行し、実際に呼ばれるものとしてm_field_1をアドレス指定する簡単な方法はありますか?私の場合は「addresslonglat」です。
私が取り組んでいるテーブルにはこれらのフィールドが数十あり、現時点では「m_field_id_73」のような固定名でアドレス指定していますが、これは何の意味もありません。
データとそのフィールド名を簡単にまとめる簡単な方法を知っている人はいますか?
理想的には、次のことを行いたいと思います。
$result = $this->EE->db->query("select * from exp_member_data where member_id = 123")->row();
echo $result->addresslonglat;
それよりも
echo $result->m_field_id_73;