Intereting Posts
Как исправить saveHTML (): преобразование вывода не удалось из-за ошибки conv? Как настроить пакет композитора для глобальной установки? jsTree асинхронный поиск – триггер загружает новые узлы Octal для ввода строки из массива PHPUnit_Util_Type :: export () в версии 4.0 Codeigniter: контроль прав доступа с наследованием Объедините 2 массива в третий массив с непостоянными уникальными ключами из одного массива 2 штуки аналогичного PHP, один работает один нет? Загружать данные Локальный файл с хешем и датой с помощью набора Google app-engine – загруженные файлы не являются общедоступными в облачном хранилище Google как переписать URL с двумя переменными, используя .htaccess Проблема с чтением файлов размером более 1 ГБ с помощью XMLReader Класс доступа PHP внутри другого класса слияние рекурсивных на внутренних массивах многомерного массива php $ facebook-> getLogoutUrl (); ссылка не выводит пользователя из facebook

как сделать laravel query builder, как активная запись codeigniter

У меня проблема с построителем запросов 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? У меня есть googling, но не найти ответа. Спасибо, прежде.

Вы можете попробовать это (предположим, эта функция находится в вашей модели 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')); 
 $where[] = array( 'field' => 'city', 'operator' => '=', 'value' => 'jakarta' ); $where[] = array( 'field' => 'age', 'operator' => '=', 'value' => 25 ); $data = getData($where); public function getData($wheres = array()){ $query = User::query(); if(!empty($wheres)){ foreach($wheres as $where){ { $query = $query->where($where['field'], $where['operator'], $where['value']); } $result = $query->get(); } }