tigron / skeleton-package-crud
Tigron 骨架 CRUD 功能
v4.0.0
2024-09-02 12:02 UTC
Requires
- tigron/skeleton-core: >=2
Requires (Dev)
- tigron/skeleton-database: dev-master
- tigron/skeleton-pager: *
README
描述
此库为骨架对象提供 CRUD 功能
安装
通过 Composer 安装
composer require tigron/skeleton-package-crud
如何安装
模块
在你的应用程序中创建一个扩展自 Skeleton\Package\Web\Module\Crud 的模块
<?php
/**
* Module Crud
*
* @author Christophe Gosiau <christophe@tigron.be>
* @author Gerry Demaret <gerry@tigron.be>
* @author David Vandemaele <david@tigron.be>
*/
use Skeleton\Package\Crud\Web\Module\Crud;
class Web_Module_User extends Crud {
/**
* The template
*
* @access public
*/
public $template = 'user.twig';
/**
* Get the pager object
*
* @access public
* @return Pager $pager
*/
public function get_pager() {
}
}
Create a route in your application Config.php
/**
* Routes
*/
'routes' => [
'web_module_user' => [
'$language/user'
],
]
模板
为你的模块创建一个模板,将生成的模板注入到你的布局中
{% extends "_default/layout.base.twig" %}
{% block header_js %}
{% embed "@skeleton-package-crud/javascript.twig" %}{% endembed %}
{% endblock header_js %}
{% block header_css %}
{% embed "@skeleton-package-crud/css.twig" %}{% endembed %}
{% endblock header_css %}
{% block content %}
{% embed "@skeleton-package-crud/content.twig" with {'object_name': 'My object'} %}{% endembed %}
{% endblock content %}
模板块
在嵌入 "@skeleton-package-crud/content.twig" 中,有可用的块来自定义 CRUD 模块。以下是可以找到的块及其默认内容列表
分页页面
分页的过滤器
{% block pager_filters %}
<div class="form-group">
<label class="control-label col-lg-2">{% trans "Search" %} </label>
<div class="controls col-lg-10">
<input type="text" class="form-control" name="search" value="{{ pager.get_search() }}"/>
</div>
</div>
{% endblock pager_filters %}
面包屑导航
{% block page_pager_breadcrumb %}
{#
Insert the full breadcrumbs for the edit page
#}
{% endblock page_pager_breadcrumb %}
分页表格的表头
{% block pager_table_head %}
{% for definition in default_fields %}
<th>{{ pager.create_header(definition.field, definition.field) }}</th>
{% endfor %}
{% endblock pager_table_head %}
分页表格的行
{% block pager_table_row %}
{% for definition in default_fields %}
<td>{{ attribute(object, definition.field) }}</td>
{% endfor %}
{% endblock pager_table_row %}
创建页面
对象创建的表单
{% block form_create %}
{#
Insert a complete form for object creation here.
Make sure that an array with key object[field] is posted
#}
{% endblock form_create %}
面包屑导航
{% block page_create_breadcrumb %}
{#
Insert the full breadcrumbs for the create page
#}
{% endblock page_create_breadcrumb %}
创建页面
{% block page_create %}
{#
Insert a complete page for creating the object here
Make sure that an array with key object[field] is posted
#}
{% endblock page_create %}
创建页面页脚
{% block page_create_footer %}
{#
This is a part of block page_create just below the edit form
This can be used to show additional information about the object
#}
{% endblock page_create_footer %}
编辑页面
编辑对象的表单
{% block form_edit %}
{#
Insert a complete form for editing the object here.
Make sure that an array with key object[field] is posted
#}
{% endblock form_edit %}
面包屑导航
{% block page_edit_breadcrumb %}
{#
Insert the full breadcrumbs for the edit page
#}
{% endblock page_edit_breadcrumb %}
编辑页面
{% block page_edit %}
{#
Insert a complete page for editing the object here
Make sure that an array with key object[field] is posted
#}
{% endblock page_edit %}
编辑页面页脚
{% block page_edit_footer %}
{#
This is a part of block page_edit just below the edit form
This can be used to show additional information about the object
#}
{% endblock page_edit_footer %}
模块方法
在模块中,你可以使用以下方法来配置 CRUD 行为
/**
* Is deletable
*
* @access public
* @param Object $object
* @return bool $deletable
*/
public function is_deletable($object) {
return true;
}
/**
* Is editable
*
* @access public
* @param Object $object
* @return bool $editable
*/
public function is_editable($object) {
return true;
}
/**
* Is creatable
*
* @access public
* @return bool $creatable
*/
public function is_creatable() {
return true;
}