0

シナリオはレポートアプリケーションです。これまで、私が使用したMVCアプリケーションには、通常、1つの特定の質問(つまりget_username_from_id($id))に応答するモデルメソッドがあります。私が探しているのは、選択したチェックボックスに応じてさまざまな方法で応答できる1つのクエリを用意することです。

つまり、たとえば、選択に1つだけのクエリがある場合や、選択に100個のクエリがある場合があります。私がやったように、それはすぐに散らかってしまいました。たとえば、私は次のようなことをすることになります。

if(in_array("id", $grain)){
    $sql .= "table.id id, ";
}

この種のベストプラクティスはありますか?または、グループを処理する方法でさえ、余分なコードがたくさんないようにしますか?私はこれが一種のオープンエンドであることを知っています、そして私はおそらく私の質問を正しく言い表すことさえしていません。チャイムを鳴らして正しい質問をするのを手伝ってくれる人たちにも感謝します。

4

1 に答える 1

0

私は次のようなものを使用します:

function apply_filters ($filters)
{
        if(isset($filters['user_id']) AND !empty($filters['user_id']))
        {
                $this->db->where('user_id', $filters['user_id']);
        }
}
function get ($filters)
{
        $this->apply_filters($filters);
        return $this->db->get('favourites')->result();
}
function update ($filters, $data)
{
        $this->apply_filters($filters);
        $this->db->update('favourites', $data);
}

必要に応じて apply_filters 関数を拡張できるはずです。質問は、あなたがやりたいことの詳細と実際のデータとコードのサンプルの多くを省いているので、これが私がこれまでに提案できることです.

于 2012-11-02T14:57:43.010 に答える