arbory / arbory
Laravel 的管理界面
4.0.2
2024-08-29 13:02 UTC
Requires
- php: ^8.2|^8.3
- ext-json: *
- arbory/translation: ^2.8
- astrotomic/laravel-translatable: ^11.6
- baum/baum: 3.x-dev
- cartalyst/sentinel: 8.x-dev
- doctrine/dbal: ^3.8
- laragear/two-factor: ^2.0
- laravel/framework: ^11.0
- maatwebsite/excel: ^3.1
- spatie/laravel-glide: ^3.8
- spatie/laravel-sluggable: ^3.6
- unisharp/laravel-filemanager: ^2.9
Requires (Dev)
- mockery/mockery: ^1.6
- orchestra/testbench-core: ^8
- php-coveralls/php-coveralls: ^2.7
- phpunit/phpunit: ^10
- dev-master
- 4.0.2
- 4.0.1
- 4.0.0
- v3.x-dev
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- 2.3.10
- 2.3.9
- 2.3.8
- 2.3.7
- 2.3.6
- 2.3.5
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.13
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.1.x-dev
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.x-dev
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0
- 0.3.x-dev
- 0.2.19
- 0.2.18
- 0.2.17
- 0.2.16
- 0.2.15
- 0.2.14
- 0.2.13
- 0.2.12
- 0.2.11
- 0.2.10
- 0.2.9
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.x-dev
- 0.1.11
- 0.1.10
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-dependabot/npm_and_yarn/rollup-4.22.4
- dev-dependabot/npm_and_yarn/multi-9423f4c335
- dev-dependabot/npm_and_yarn/vite-5.4.6
- dev-dependabot/npm_and_yarn/multi-cf87d80143
- dev-dependabot/npm_and_yarn/multi-d66d039ac5
- dev-dependabot/composer/phpoffice/phpspreadsheet-1.29.1
- dev-2fa-toggle
- dev-2.3-stable
- dev-laravel9
- dev-2.0-stable
- dev-fix-select-pagination-with-filters
- dev-analysis-5ZrkWy
- dev-1.1-stable
- dev-1.0-stable
- dev-0.4-laravel-6
- dev-1.0-rc1
This package is auto-updated.
Last update: 2024-09-24 04:23:20 UTC
README
安装
创建新的 Laravel 项目
composer create-project --prefer-dist laravel/laravel=8.0 my-project
进入项目根目录
cd my-project
要求 Arbory 包
composer require arbory/arbory
填写数据库信息
vi .env
运行安装程序并按照指示操作
php artisan arbory:install
完成了!
Visit https:///admin
用法
注册新页面
Page::register( App\Pages\TextPage::class ) ->fields( function( FieldSet $fieldSet ) { $fieldSet->add( new Arbory\Base\Admin\Form\Fields\Richtext( 'text' ) ); } ) ->routes( function() { Route::get( '/', App\Http\Controllers\TextPageController::class . '@index' )->name( 'index' ); } );
注册新管理模块
Admin::modules()->register( App\Http\Controllers\Admin\TextController::class );
处理节点
节点仓库用于确保网站只向用户显示活动节点
$currentNode = app( Arbory\Base\Nodes\Node::class ); $nodes = app( Arbory\Base\Repositories\NodesRepository::class ); // returns only the active children of the current node $nodes->findUnder( $currentNode );
验证
验证规则 可以附加到任何字段,如下所示
$form->addField( new Text( 'title' ) )->setRules( 'required' );
验证翻译
$form->addField( new Translatable( ( new Text( 'title' ) )->rules( 'required' ) ) );
自定义验证器
- arbory_require_one_localized - 至少存在一个此字段的翻译
- arbory_file_required - 文件已上传或正通过请求传递
字段
对象关系
创建与其他模型的关系
new Arbory\Base\Admin\Form\Fields\ObjectRelation( 'field_name', Arbory\Base\Nodes\Node::class );
要限制用户可以选择的关系数量,可以传递第三个参数。限制为单个模型的关系字段将更紧凑地呈现。
new ObjectRelation( 'field_name', Arbory\Base\Nodes\Node::class, 1 ); // single relation, compact view new ObjectRelation( 'field_name', Arbory\Base\Nodes\Node::class, 10 );
可以传递一个可选的深度参数(节点关系将自动设置),它会在字段项中添加视觉嵌套
( new ObjectRelation( 'field_name', Arbory\Base\Nodes\Node::class ) )->setIndentAttribute( 'depth' );
可以根据属性对项进行分组
$getName = function( \Arbory\Base\Nodes\Node $model ) { return class_basename( $model->content_type ); }; ( new ObjectRelation( 'field_name', Arbory\Base\Nodes\Node::class ) )->groupBy( 'content_type', $getName );
设置
注册设置(可选嵌套)并检索它
return [ 'my_letter' => [ 'to' => 'a friend', 'subject' => 'Hello!' ] ]
Settings::has('my_letter.to'); // true Settings::get('my_letter.to'); // "a friend"
定义字段类型
return [ 'my_setting_key' => [ 'value' => 'My setting value', 'type' => Arbory\Base\Admin\Form\Fields\CompactRichtext::class ], ]
文件设置
return [ 'my_setting_file' => [ 'value' => null, 'type' => Arbory\Base\Admin\Form\Fields\ArboryFile::class ], 'my_setting_image' => [ 'value' => null, 'type' => Arbory\Base\Admin\Form\Fields\ArboryImage::class ], ]
可翻译设置
return [ 'hello' => [ 'type' => Arbory\Base\Admin\Form\Fields\Translatable::class, 'value' => [ 'type' => Arbory\Base\Admin\Form\Fields\CompactRichtext::class, 'value' => [ 'en' => 'Hello', 'lv' => 'Sveiks' ] ] ], ]
生成管理员用户
php artisan arbory:create-user
贡献
要提交 SCSS/Js 变更,必须重新构建包含编译资源的 dist
目录。运行 npm run prod
来执行此操作。
编码风格
使用 PSR-1/2
JS
我们同时为 JS 和 SASS 使用 airbnb
编码风格(以下链接)。
要安装 PHPStorm 内置的检查,请按照以下说明操作: https://www.themarketingtechnologist.co/how-to-get-airbnbs-javascript-code-style-working-in-webstorm/
注意!
当在配置窗口中指定 JSCS 包时,必须在本地安装(在项目内)。全局安装将不会工作(PHPStorm 将全局安装包)。
定制
可以在单独的文件中修改规则(项目根目录中的 .jscsrc
或 .jscs.json
)或项目的 package.json
文件(jscsConfig
部分)。
链接
- JS - https://github.com/airbnb/javascript
- CSS / SASS - https://github.com/airbnb/css