0

次のような高度な検索を作成したいと思います。

  • テキストボックス:検索
  • ドロップダウン:名前、場所、電話で検索
  • ドロップダウン:AscまたはDecで注文
  • ドロップダウン:名前、場所、または電話で並べ替え
  • ドロップダウン:日付間を検索(選択した場合)

モデルの関数にこれらのパラメーターを追加する適切な方法は何ですか?

私はこの解決策を思いついた:

class ShopsModel extends Model {

  findBy($find, $searchBy, $order, $sort, $betweenDate) {
   // some MySQL query here...
  }

}

編集:私は変数について話している---findBy($find, $searchBy, $order, $sort, $betweenDate)私はそれらのすべてのパラメーターが必要ですか、それとも代替の解決策がありますか?

4

2 に答える 2

1

あなたの解決策は大丈夫のようです。ただし、デコレータパターンを使用することもできるため、次のクエリを実行できます。

$shops = new ShopsModel();
$results = $shops->search('name', 'Tadeck')
    ->order_by('name', 'asc')
    ->between_dates('2012-02-01', '2012-03-14')
    ->fetch_all();
于 2012-02-18T00:18:53.120 に答える
0

あなたが説明していることは、knockoutjsやbackbonejsのようなjavascriptライブラリと組み合わせて行うべきだと思います。

Nettutsはknockoutjsをカバーしており、デモはここで入手できます:http: //nettuts.s3.amazonaws.com/1034_ko/demo/index.html

Yiiのようなパターンを使用している場合は、このようなチュートリアルをグーグルで検索できますhttp://aiao.be/2012/01/29/knockout-js-with-the-yii-framework-hello-world-example/

于 2012-02-18T15:33:07.537 に答える