Laravel Встроенная поддержка репозитория для моделей Laravel

StalkerClasses

Новичок
Можно ли как-то в модель Laravel добавить ряд функция аля репозиторий что бы они были в каждой созданной модели?
Что-то типа:
Код:
GetIBlockList    Возвращает список информационных блоков по фильтру.    3.0.5
GetIBlock    Возвращает информационный блок по заданному коду.    3.0.5
GetIBlockElementListEx    Возвращает список элементов по фильтру.    3.0.5
GetIBlockElementList    Возвращает список элементов из определённого информационного блока.    3.0.5
GetIBlockElement    Возвращает элемент по заданному коду.    3.0.5
GetIBlockSectionList    Возвращает список папок из определённого информационного блока.    3.0.5
GetIBlockSection    Возвращает раздел по заданному коду.    3.0.5
Если ваша задача более специфична и публичных функций недостаточно, или необходимо не только выбрать, но и изменить данные, то необходимо воспользоваться набором классов для работы с объектами модуля информационных блоков.

Классы модуля информационных блоков
Класс    Описание    С версии
CIBlock    Класс для работы с информационными блоками.    3.0.3
CIBlockCMLExport    Класс для экспорта данных инфоблока в xml-формате.    6.5.0
CIBlockCMLImport    Класс для импорта данных инфоблока в xml-формате.    6.5.0
CIBlockElement    Класс для работы с элементами информационных блоков.    3.0.5
CIBlockFormatProperties        5.9.0
CIBlockPriceTools        5.9.0
CIBlockProperty    класс для работы со свойствами информационных блоков.    3.0.3
CIBlockPropertyEnum    Класс для работы с вариантами значений для свойств типа "список".    3.1.3
CIBlockResult    Вспомогательный класс для работы с объектами результатов выборок.    3.0.5
CIBlockRSS    Класс для работы с RSS лентами.    3.0.14
CIBlockSection    Класс для работы с группами информационных блоков.    3.0.4
CIBlockType    Класс для работы с типами информационных блоков.    3.1.3
CIBlockXMLFile    Класс для работы с файлами XML.    6.5.0
Пользовательские свойства    Позволяют изменять представление (формы ввода и т.п.) стандартных свойств расширяя их возможности.    5.1.0
_CIBElement    Вспомогательный класс для работы с объектом выборки элемента.


* @method static PageModel|null findById($id, array $opt=array())
* @method static PageModel|null findByPk($id, array $opt=array())
* @method static PageModel|null findByIdOrAlias($val, array $opt=array())
* @method static PageModel|null findOneBy($col, $val, array $opt=array())
* @method static PageModel|null findOneByPid($val, array $opt=array())
* @method static PageModel|null findOneBySorting($val, array $opt=array())
* @method static PageModel|null findOneByTstamp($val, array $opt=array())
* @method static PageModel|null findOneByTitle($val, array $opt=array())
* @method static PageModel|null findOneByAlias($val, array $opt=array())
* @method static PageModel|null findOneByType($val, array $opt=array())
* @method static PageModel|null findOneByPageTitle($val, array $opt=array())
* @method static PageModel|null findOneByLanguage($val, array $opt=array())
* @method static PageModel|null findOneByDisableLanguageRedirect($val, array $opt=array())
* @method static PageModel|null findOneByUseFolderUrl($val, array $opt=array())
* @method static PageModel|null findOneByRobots($val, array $opt=array())
* @method static PageModel|null findOneByDescription($val, array $opt=array())
* @method static PageModel|null findOneByRedirect($val, array $opt=array())
* @method static PageModel|null findOneByJumpTo($val, array $opt=array())
* @method static PageModel|null findOneByRedirectBack($val, array $opt=array())
* @method static PageModel|null findOneByUrl($val, array $opt=array())
* @method static PageModel|null findOneByTarget($val, array $opt=array())
* @method static PageModel|null findOneByDns($val, array $opt=array())
* @method static PageModel|null findOneByStaticFiles($val, array $opt=array())
* @method static PageModel|null findOneByStaticPlugins($val, array $opt=array())
* @method static PageModel|null findOneByFallback($val, array $opt=array())
* @method static PageModel|null findOneByFavicon($val, array $opt=array())
* @method static PageModel|null findOneByRobotsTxt($val, array $opt=array())
* @method static PageModel|null findOneByAdminEmail($val, array $opt=array())
* @method static PageModel|null findOneByDateFormat($val, array $opt=array())
* @method static PageModel|null findOneByTimeFormat($val, array $opt=array())
* @method static PageModel|null findOneByDatimFormat($val, array $opt=array())
* @method static PageModel|null findOneByValidAliasCharacters($val, array $opt=array())
* @method static PageModel|null findOneByUrlPrefix($val, array $opt=array())
* @method static PageModel|null findOneByUrlSuffix($val, array $opt=array())
* @method static PageModel|null findOneByUseSSL($val, array $opt=array())
* @method static PageModel|null findOneByAutoforward($val, array $opt=array())
* @method static PageModel|null findOneByProtected($val, array $opt=array())
* @method static PageModel|null findOneByGroups($val, array $opt=array())
* @method static PageModel|null findOneByIncludeLayout($val, array $opt=array())
* @method static PageModel|null findOneByLayout($val, array $opt=array())
* @method static PageModel|null findOneByIncludeCache($val, array $opt=array())
* @method static PageModel|null findOneByCache($val, array $opt=array())
* @method static PageModel|null findOneByIncludeChmod($val, array $opt=array())
* @method static PageModel|null findOneByCuser($val, array $opt=array())
* @method static PageModel|null findOneByCgroup($val, array $opt=array())
* @method static PageModel|null findOneByChmod($val, array $opt=array())
* @method static PageModel|null findOneByNoSearch($val, array $opt=array())
* @method static PageModel|null findOneByCssClass($val, array $opt=array())
* @method static PageModel|null findOneBySitemap($val, array $opt=array())
* @method static PageModel|null findOneByHide($val, array $opt=array())
* @method static PageModel|null findOneByGuests($val, array $opt=array())
* @method static PageModel|null findOneByTabindex($val, array $opt=array())
* @method static PageModel|null findOneByAccesskey($val, array $opt=array())
* @method static PageModel|null findOneByPublished($val, array $opt=array())
* @method static PageModel|null findOneByStart($val, array $opt=array())
* @method static PageModel|null findOneByStop($val, array $opt=array())
* @method static PageModel|null findOneByEnforceTwoFactor($val, array $opt=array())
* @method static PageModel|null findOneByTwoFactorJumpTo($val, array $opt=array())
* @method static PageModel|null findOneByMailerTransport($val, array $opt=array())
*
* @method static Collection|PageModel[]|PageModel|null findByPid($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findBySorting($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByTstamp($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByTitle($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByAlias($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByType($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByPageTitle($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByLanguage($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByDisableLanguageRedirect($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByUseFolderUrl($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByRobots($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByDescription($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByRedirect($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByJumpTo($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByRedirectBack($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByUrl($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByTarget($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByDns($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByStaticFiles($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByStaticPlugins($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByFallback($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByFavicon($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByRobotsTxt($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByAdminEmail($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByDateFormat($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByTimeFormat($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByDatimFormat($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByValidAliasCharacters($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByUrlPrefix($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByUrlSuffix($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByUseSSL($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByAutoforward($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByProtected($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByGroups($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByIncludeLayout($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByLayout($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByIncludeCache($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByCache($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByIncludeChmod($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByCuser($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByCgroup($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByChmod($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByNoSearch($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByCssClass($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findBySitemap($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByHide($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByGuests($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByTabindex($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByAccesskey($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByPublished($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByStart($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByStop($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByEnforceTwoFactor($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByTwoFactorJumpTo($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findByMailerTransport($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findMultipleByIds($val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findBy($col, $val, array $opt=array())
* @method static Collection|PageModel[]|PageModel|null findAll(array $opt=array())
*
* @method static integer countById($id, array $opt=array())
* @method static integer countByPid($val, array $opt=array())
* @method static integer countBySorting($val, array $opt=array())
* @method static integer countByTstamp($val, array $opt=array())
* @method static integer countByTitle($val, array $opt=array())
* @method static integer countByAlias($val, array $opt=array())
* @method static integer countByType($val, array $opt=array())
* @method static integer countByPageTitle($val, array $opt=array())
* @method static integer countByLanguage($val, array $opt=array())
* @method static integer countByDisableLanguageRedirect($val, array $opt=array())
* @method static integer countByUseFolderUrl($val, array $opt=array())
* @method static integer countByRobots($val, array $opt=array())
* @method static integer countByDescription($val, array $opt=array())
* @method static integer countByRedirect($val, array $opt=array())
* @method static integer countByJumpTo($val, array $opt=array())
* @method static integer countByRedirectBack($val, array $opt=array())
* @method static integer countByUrl($val, array $opt=array())
* @method static integer countByTarget($val, array $opt=array())
* @method static integer countByDns($val, array $opt=array())
* @method static integer countByStaticFiles($val, array $opt=array())
* @method static integer countByStaticPlugins($val, array $opt=array())
* @method static integer countByFallback($val, array $opt=array())
* @method static integer countByFavicon($val, array $opt=array())
* @method static integer countByRobotsTxt($val, array $opt=array())
* @method static integer countByAdminEmail($val, array $opt=array())
* @method static integer countByDateFormat($val, array $opt=array())
* @method static integer countByTimeFormat($val, array $opt=array())
* @method static integer countByDatimFormat($val, array $opt=array())
* @method static integer countByValidAliasCharacters($val, array $opt=array())
* @method static integer countByUrlPrefix($val, array $opt=array())
* @method static integer countByUrlSuffix($val, array $opt=array())
* @method static integer countByUseSSL($val, array $opt=array())
* @method static integer countByAutoforward($val, array $opt=array())
* @method static integer countByProtected($val, array $opt=array())
* @method static integer countByGroups($val, array $opt=array())
* @method static integer countByIncludeLayout($val, array $opt=array())
* @method static integer countByLayout($val, array $opt=array())
* @method static integer countByIncludeCache($val, array $opt=array())
* @method static integer countByCache($val, array $opt=array())
* @method static integer countByIncludeChmod($val, array $opt=array())
* @method static integer countByCuser($val, array $opt=array())
* @method static integer countByCgroup($val, array $opt=array())
* @method static integer countByChmod($val, array $opt=array())
* @method static integer countByNoSearch($val, array $opt=array())
* @method static integer countByCssClass($val, array $opt=array())
* @method static integer countBySitemap($val, array $opt=array())
* @method static integer countByHide($val, array $opt=array())
* @method static integer countByGuests($val, array $opt=array())
* @method static integer countByTabindex($val, array $opt=array())
* @method static integer countByAccesskey($val, array $opt=array())
* @method static integer countByPublished($val, array $opt=array())
* @method static integer countByStart($val, array $opt=array())
* @method static integer countByStop($val, array $opt=array())
* @method static integer countByEnforceTwoFactor($val, array $opt=array())
* @method static integer countByTwoFactorJumpTo($val, array $opt=array())
* @method static integer countByMailerTransport($val, array $opt=array())
 

fixxxer

К.О.
Партнер клуба
это.... битрикс на eloquent-е какой-то

ладно, тебе объяснять, что ты занимаешься ерундой бесполезно, проще дать прямой ответ

делаешь свой базовый класс, который наследуется от eloquent model, добавляешь в него пачку скоупов, наследуешься от него.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Или говнокодишь трейт
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
лучше, конечно, сделать по классу на каждый обработчик CIBlock[Action], инстанциировать нужный обработчик, и передавать в него объект CIBlock, что бы это ни было, но подозреваю, что автору будет лень так делать
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
задача стандартная, и решение есть везде - в Symfony, например, есть Command Bus
в Laravel это тоже было, но куда доку для ларавеля засунули, я не знаю, для 8 осталась только страница "Installation"
 

fixxxer

К.О.
Партнер клуба
в Laravel это тоже было, но куда доку для ларавеля засунули, я не знаю, для 8 осталась только страница "Installation"
Было в 5.0, сразу выпилили, потому что слишком сложная концепция для индусов.
Можно использовать евент-диспетчер в качестве command bus, можно написать свой.
 
Сверху