rvanmarkus / modx-laravel-models
该包已废弃,不再维护。未建议替代包。
借助 Laravel 和 MODX 建立您的应用程序/网站
0.0.3
2015-10-30 01:58 UTC
Requires
- php: >=5.3.0
- illuminate/database: ~5.0
- illuminate/support: ~5.0
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
This package is not auto-updated.
Last update: 2022-03-19 04:40:39 UTC
README
Laravel 5 Eloquent 数据库模型,用于与 MODX 数据库交互。
此包可以帮助您构建 Laravel 应用程序,查询 MODX 页面/内容和模板变量。使用 Laravel 框架的所有现代和美观功能,为用户提供 MODX CMS 的便捷性。
安装
$ composer require rvanmarkus/modx-laravel-models
或者在您的 composer.json 中添加以下内容
"require": {
"rvanmarkus/modx-laravel-models": "dev-master"
}
##入门
将您的 Laravel 应用程序连接到与 MODX 相同的数据库,并使用相同的编码设置。(app/config/database.php)
直接使用 Rvanmarkus/Modxmodels/ModxContentModel 类
use Rvanmarkus\Modxmodels\ModxContentModel
//queries directly modx_site_content table => returns title, content, author, etc
$content = ModxContentModel::where('alias','=','/about-us')->get();
使用指定 MODX 模板 ID 的自定义模型类
创建一个新的 PHP 类,并扩展 Rvanmarkus/Modxmodels/PageModel。在 MODX 管理器中创建一个新的模板,并将新的模板 ID 添加到模型中。
(例如,App/Books.php)
use Rvanmarkus\Modxmodels\ModxPageModel
class Books extends ModxPageModel{
const MODX_TEMPLATE_ID = 3; // id reference of the MODX (book) template (can be founded in MODX manager / or database)
}
$book = Books::where('alias','=','/example-book')
->with('templateVariables');
->published()
->sortPublished()
->get();
//Get your template variables from the templateVariables collection;
$book->templateVariables->get('NameOfTemplateVariables');
使用自定义模型类和作用域
如果您不想使用由模板指定的模型,创建一个直接扩展 Rvanmarkus/Modxmodels/ModxContentModel 类的模型,而不使用 PageModel 类。此类将默认根据您添加的作用域查询所有 modx_site_content 数据。有关更多信息,请参阅 Eloquent 文档。
模板变量
您可以通过添加 'TemplateVariables' 关系来预加载模板变量(有关更多信息,请参阅 Laravel Eloquent 文档)
use Rvanmarkus/Modxmodels/ModxContentModel
//query content models where alias is'/about-us' and load all related template variables
$book = Books::with('templateVariables')
->where('alias','=','/john-doe-the-book')
->published()
->firstOrFail();
//for example: query the template variable (added in the MODX manager, with input type: *checkbox*) called 'Genres'
$tv = $book->templateVariables->get('Genres'); //ex. ['Roman','Science Fiction'] returns a array of selected checkbox TV values
模型自动将模板变量的某些值转换为对象。以下模板变量类型将被自动转换
- 日期
- 文本
- 复选框(多个值)
- MIGX 数据
示例
$book->templateVariables->get('DateTemplateVariable')
// returns Carbon DateTime Object value
$book->templateVariables->get('MIGXTemplateVariable')
// returns PHP Object value
$book->templateVariables->get('CheckboxTemplateVariable')
// returns PHP Array value
$book->templateVariables->get('TextTemplateVariable')
// returns string value