1

Laravel 4 クエリ ビルダーに問題があるため、再利用可能なメソッドを作成したい

public function getData($where=array())
{
    // $where = array('city' => 'jakarta', 'age' => '25');
    return User::where($where)->get();

    // this will produce an error, because i think laravel didn't support it
}

CodeIgniter では、配列をアクティブなレコードに渡すのは簡単です:

public function getData($where=array())
{
    $rs = $this->db->where($where)->from('user')->get();

    return $rs->result();
}

// it will produce :
// SELECT * FROM user WHERE city = 'jakarta' AND age = '25'

Laravel 4 クエリビルダーでそれを使用する方法はありますか? 私はグーグルを持っていますが、答えが見つかりません。前にありがとう。

4

2 に答える 2

4

これを試すことができます(この関数がUserモデルにあると仮定します)

class User extends Eloquent {

    public static function getData($where = null)
    {
        $query =  DB::table('User');
        if(!is_null($where )) {
            foreach($where as $k => $v){
                $query->where($k, $v);
            }
        }
        return $query->get();
    }
}

それ=はオプションです。のように呼びます

$data = User::getData(array('first_name' => 'Jhon'));
于 2013-10-08T19:19:21.617 に答える