Орла
Области
Компаний
Пользователи
Галерея
Фиксированные новости
Орла
Отзывы о фирмах
Тарифы
Пользователи
Области
Банкоматы
Торговые точки
Доска объявлений
Курсы валют
Скидки
организации Орла
организации области
товары
сайты
сайты Орел
Данные
Разделы
Поиск
Поиск запросы
Статистика
Показы каталога организаций
Статистика клиенты
Пользователи
Сайты
Управление сайтом
Анкета
Аптеки
Афиша
Афиша новая
Баннеры
Бизнес >
Викторина
Голосование
Гость на сайте
Истории
Календарь событий
Каталоги >
Конкурс красоты
Конкурс аудио
Консультации
Меню
Новое на сайте
Новости >
Организации >
Программа ТВ
Публикации
Разделы сайта
Рассылка
Рестораны
Секрет фирмы >
Сервисы >
Ссылки
Тесты
Файловый менеджер
Форум
Фотогалерея
Обратная связь
Недвижимость
Новый год
Тексты
Пользователи
Юридический рейтинг
Отзывы на товары
Бан пользователей
Жалобы
Новые тесты
Коронавирус
Файловый менеджер
Имя файла
RelationAttribute.php
Содержимое
<?php namespace app\core\models; /** * Ртот класс предназначен для получения связанных данных СЃ таблицей. * Пример использования: * * ```php * class Model extends ActiveRecord * { * public static function primaryKey() * { * return 'id'; * } * * public static function tableName() * { * return 'sometable'; * } * * public static function getUser() * { * return $this->hasOne(User::className(), ['id' => 'user_id']) * ->select(['id', 'name']); * } * } * ``` * * Затем РјС‹ пишем выборку РёР· таблицы * ```php * Model::find() * ->with(['user']) * ->one() *``` * * Следующий пример демонстрирует как сделать выборку СЃРІРѕ СЃРІСЏР·СЏРјРё, РїСЂРё этом * РјРѕР¶РЅРѕ переопределить select * ```php * Model::find() * ->with([ * 'user' => function() { * return ['id', 'name', 'created_at', 'email']; * } * ]) * ->one() * ``` * * Class RelationAttribute * @package app\core\models */ class RelationAttribute { /** * Константа для связей РѕРґРёРЅ Рє РѕРґРЅРѕРјСѓ */ const RELATION_TYPE_HAS_ONE = 0; /** * Константа для связей РѕРґРёРЅ РєРѕ РјРЅРѕРіРёРј */ const RELATION_TYPE_HAS_MANY = 1; /** * Класс РёР· которого РјС‹ возмем таблицу * @var string */ private $_targetClass; /** * Название таблицы, РёР· которой делаем выборку. * Поле заполняется РїСЂРё вызове метода setTargetClass($className) * @var string */ private $_tableName; /** * Какие поля выбирать. РџРѕ умолчанию выбирать РІСЃРµ поля. * РњРѕР¶РЅРѕ передать РёС… callable функцией РІ условии with * @var array */ private $_select = []; /** * РўРёРї СЃРІСЏР·Рё РѕРґРёРЅ Рє РѕРґРЅРѕРјСѓ, РѕРґРёРЅ РєРѕ РјРЅРѕРіРёРј * @var */ private $_relationType; private $_where; public function __construct() { return $this; } /** * Функция устанавливает класс, РёР· которого РјС‹ возьмем таблицу * @param $className * @throws \Exception - если класс РЅРµ найден * @return $this */ public function setTargetClass($className) { $this->_targetClass = $className; if (class_exists($this->_targetClass) == false) { throw new \Exception('Класс РЅРµ найден'); } $this->_tableName = call_user_func([$this->_targetClass, 'tableName']); return $this; } /** * Функция устанавливает тип СЃРІСЏР·Рё hasOne() или hasMany() * @param $type * @throws \Exception * @return $this; */ public function setRelationType($type) { if ($type != self::RELATION_TYPE_HAS_MANY && $type != self::RELATION_TYPE_HAS_ONE) { throw new \Exception('Неизвестный тип СЃРІСЏР·Рё РІ запросе'); } $this->_relationType = $type; return $this; } /** * Условие выборки. * условие РІРёРґР° ['id' => 'user_id'] * будет трансормироваться РІ ['id' => 123] * @param array $condition * @return $this */ public function setCondition(array $condition) { $this->_where = $condition; return $this; } /** * Функция возвращает условие выборки, РїРѕ которой РјС‹ находим данные * @return mixed */ public function getCondition() { return $this->_where; } /** * Какие поля РјС‹ выбираем РёР· таблицы * @param array $select * @return $this; */ public function select(array $select) { $this->_select = $select; return $this; } /** * @return array */ public function getSelect() { return $this->_select; } public function getTableName() { return $this->_tableName; } public function getTargetClassName() { return $this->_targetClass; } public function getRelationType() { return $this->_relationType; } }
/app/core/models/
Имя
Дата
Размер
..
2019-02-12
validators
2026-05-25
ActiveRecord.php
2023-09-07
10 кб.
ActiveRecord.php~
2016-12-23
10 кб.
BaseModel.php
2016-12-22
167 байт
Command.php
2016-12-22
199 байт
Expression.php
2016-12-22
329 байт
Form.php
2016-12-22
6 кб.
Mail.php
2016-12-22
762 байт
MySQLCommand.php
2019-01-31
1 кб.
NoInjection.php
2019-01-30
987 байт
QueryBuilder.php
2020-03-10
20 кб.
RelationAttribute.php
2016-12-22
5 кб.
SqlModel.php
2016-11-24
98 байт
WhereConditionHelper.php
2019-01-30
813 байт
/app/core/models
Загрузить файлы
Файл 1
Файл 2
Файл 3