3

「Joomlaを学ぶ!3 拡張機能開発 第3版」を購入しました。この本は超!Joomlaの初心者として!新しいコンポーネントを構築する最初の仕事で大いに役立ちます。ただし、モデル構成関数についてはまだ理解していません。

public function __construct($config = array())
{
    if (empty($config['filter_fields']))
    {
        $config['filter_fields'] = array(
            'id', 'a.id',
            'title', 'a.title',
            'state', 'a.state',
            'company', 'a.company',
            'image', 'a.image',
            'url', 'a.url',
            'phone', 'a.phone',
            'description', 'a.description',
            'ordering', 'a.ordering', 'a.catid'
        );
    }

parent::__construct($config);
}

「id」と「a.id」、「title」と「a.title」、「phone」と「a.phone」などの関係は? joomla! データベーステーブルから自動的に値を割り当てますか? 「電話」を「電話」に変更すると、データを取得できません。前にありがとう。

4

3 に答える 3

1

これには私も戸惑いました。ここで答えを見つけました(以下に引用)。どうやら、これは許可されるフィールド名の単なるホワイト リストであり、それ以上のものではありません。

この設定の値は、クエリでの使用が許可されているフィールド名の単なるホワイト リストです。これで、かなりの数の標準フィールド名があることがわかります。また、このモデルを使用している他の誰かがそれらを使用したい場合に備えて、クエリ固有の名前のバリエーションをいくつか追加しました。本当にそれだけです。リストの見出しの 1 つをクリックすると、リクエスト内のリストの順序付け列が設定されます。モデルの populateState メソッドがリクエストからこの値を取得し、取得すると、このホワイト リストと照合することがわかっています。要求された順序付け列がホワイト リストにない場合、安全に既定の順序付けに戻ります。

于 2014-12-26T15:11:51.167 に答える
0

データベース テーブルは、テキスト「phone」を実際のフィールド名として使用します。例で b.phone を使用すると、さまざまなクエリが実行されたときに "phone" として表現され続けます。

「telephone」という名前を使用する場合は、データベース テーブル内の実際の名前を「telephone」に変更する必要があります。新しいフィルタ フィールドは、telephone、b.telephone になります。

この本が素晴らしいことに同意します。

于 2014-07-31T12:48:53.310 に答える