Articles of activerecord

yii2 BaseActiveRecord findAll () условия больше или меньше

У меня есть таблица базы данных страны (как показано в руководстве ), что я тестирую приложение разработки yii2 . У меня есть population местах, и я хочу создать публичный метод в модели Country чтобы вернуть все страны с конкретными пределами населения. т.е. вернуть все страны с населением между x и y. Я попробовал следующее: // […]

Имена полей CodeIgniter ActiveRecord в инструкции JOIN

Я создаю запрос с участием JOIN. Это первый раз, когда я сделал db-файл с Active Record, и я немного ударил. Я хочу присоединиться к таблице, названной companies в таблицу users чтобы я мог получить имя компании и т. Д. Пользователь. Я сделал это успешно: function get_profile_by_username($username) { $this->db->join('companies', $this->table_name.'.company_id = companies.id'); $this->db->where('LOWER(username)=', strtolower($username)); $query = […]

Почему активный шаблон записи не работает с богатыми доменами?

Я читаю главу архитектурных паттернов POEAA, и Фаулер говорит, что «по мере усложнения логики домена, и вы начинаете двигаться к богатой модели домена (116), простой подход к активной записи (160) начинает разрушаться . Индивидуальное совпадение классов домена с таблицами начинает терпеть неудачу, поскольку вы определяете логику домена на более мелкие классы. Реляционные базы данных не […]

Yii2 Как выполнить группировку условий AND или OR?

Я новичок в структуре Yii-2. Как я могу достичь следующего запроса в структуре Yii-2 с помощью activeQuery и моделей. SELECT * FROM users AS u WHERE u.user_id IN(1,5,8) AND (u.status = 1 OR u.verified = 1) OR (u.social_account = 1 AND u.enable_social = 1) благодаря

Эхо-запрос перед исполнением и без выполнения в кодеригенере Активная запись

Я ищу способ увидеть сгенерированную строку запроса, но не выполнив его. Обратите внимание, что запрос ранее не выполнялся. (Я не хочу $this->db->last_query(); ) Я надеюсь, что существует метод с именем типа $this->db->echo_query_string($table_name = ''); для использования точно так же, как $this->db->get($table_name = ''); НО ТОЛЬКО РАЗНИЦА БЫТЬ, ЧТО get() выполняет код, но echo_query_string() просто перекликается […]

Обработка сложных предложений WHERE с помощью PHP Query Builder

Там есть несколько библиотек построителей запросов ActiveRecord. Некоторые из них являются самостоятельными, а некоторые из них встроены в рамки . Однако у них действительно есть проблемы с предложениями WHERE и HAVING, когда дело доходит до сложного SQL. Отключение других баз данных – я пытаюсь придумать метод WHERE (), совместимый с MySQL и PostgreSQL, который мог […]

Элементы порядка Yii2 отношения «многие ко многим»

У меня есть 2 таблицы (слайдеры, изображения), связанные с таблицей junction (sliders_images), отношение работает нормально, но я недд для получения связанных данных с определенным порядком, атрибут, который определяет правильный порядок, находится в таблице соединений, отношение определено в виде: public function getImages(){ return $this->hasMany(Images::className(), ['id' => 'image_id']) ->viaTable('sliders_images', ['slider_id' => 'id'], function($query){ $query->orderBy('sliders_images.display_order ASC'); }); } […]

Codeigniter: Столбец 'id' в порядке заказа неоднозначен

Я использую классы Active Record CodeIgniter, и я получаю ошибку, используя следующий код: $this->db->select("*"); $this->db->order_by("id"); $this->db->limit($limit, $offset); $this->db->from("atoms"); $this->db->join("atommeta", "atommeta.atom_id = atoms.atom_id"); $query = $this->db->get(); Он производит эту ошибку: Error Number: 1052 Column 'id' in order clause is ambiguous SELECT * FROM (`atoms`) JOIN `atommeta` ON `atommeta`.`atom_id` = `atoms`.`atom_id` ORDER BY `id` LIMIT 10 Filename: […]

Проверьте, успешна ли update_batch () в CodeIgniter

Я запускаю update_batch () в таблице в CodeIgniter, и я хотел бы проверить, было ли это успешным. Я пробовал использовать affected_rows (), но это число учитывает только число полей формы, которые были изменены, поэтому он не совсем режет: $this->db->update_batch("sections", $data, "alias"); log_message("debug", "items in form: ".count($data)); // items in form: 3 log_message("debug", "rows updated: ".$this->db->affected_rows()); […]

Выберите активную запись Codeigniter, левое соединение, количество

У меня есть форма, которая показывает результаты запроса базы данных, эти результаты могут иметь много других активов, связанных с ними, и я хочу найти способ показать, сколько активов имеет каждый элемент. Например, моя таблица относится к областям англии, другая таблица имеет то, где пользователи живут, у меня есть этот код, $this->db->select('*'); $this->db->from('places'); $this->db->join('users, places.place_id = […]