承接 wongyip/laravel-renderable 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wongyip/laravel-renderable

最新稳定版本:v1.3.4

Composer 安装命令:

composer require wongyip/laravel-renderable

包简介

Render Eloquent model with ease.

README 文档

README

Present an Eloquent model or an associative array in HTML table view.

Installation

Install as a package to a Laravel project

composer require wongyip/laravel-rendetable

Usage

use Wongyip\Laravel\Renderable\Renderable;

// Attributes to be rendered, can be an Eloquent model.
$user = [
    'id' => 1999,
    'surname' => 'SOME',
    'last_name' => 'Body',
    'roles' => ['Operator', 'Editor', 'Supervisor'],
    'gender' => 'Male',
    'birthday' => '29th Feb',
    'active' => false
];

// Render all attributes except 'gender' and 'birthday'.
$included = true;
$excluded = ['gender', 'birthday'];

// Custom Labels
$labels = [
    'surname' => 'First Name',
    'active' => 'Status'
];

// Make
$r = Renderable::table($user, $included, $excluded);

// Render as <ul>, expected array value.
$r->typeUL('roles');

// Print 'Active' and 'Blocked' when attribute 'active' is TRUE and FALSE respectively.
$r->typeBool('active', 'Active', 'Blocked');

// Overwrite auto-generated labels.
$r->labels($labels);
    
// To HTML.
echo $r->render();

Output

<div id="renderable-12345678-container" class="renderable-container">
    <table id="renderable-12345678" class="table table-bordered table-strip renderable-table">
        <thead class="thead-light">
            <tr>
                <th class="renderable-field-header">Field</th>
                <th class="renderable-value-header">Value</th>
            </tr>
        </thead>
        <tbody class="renderable-body">
            <tr class="field-id">
                <th class="renderable-label">ID</th>
                <td class="renderable-value">1999</td>
            </tr>
            <tr class="field-surname">
                <th class="renderable-label">First Name</th>
                <td class="renderable-value">SOME</td>
            </tr>
            <tr class="field-last_name">
                <th class="renderable-label">Last Name</th>
                <td class="renderable-value">Body</td>
            </tr>
            <tr class="field-roles">
                <th class="renderable-label">Roles</th>
                <td class="renderable-value">
                    <ul>
                        <li>Operator</li>
                        <li>Editor</li>
                        <li>Supervisor</li>
                    </ul>
                </td>
            </tr>
            <tr class="field-active">
                <th class="renderable-label">Status</th>
                <td class="renderable-value">Blocked</td>
            </tr>
        </tbody>
    </table>
</div>

Output Explained

  • The main output is a <table> tag wrapped in a container <div> tag.
  • The Renderable object generates its own Renderable.id randomly on instantiate (12345678), which is changeable with the Renderable.id() method.
  • The main tag will have an id attribute derived from the Renderable.id, prefixed with renderable- by default, configurable via /config/renderable.php) and changeable on run-time by updating the Renderable.options.idPrefix property.
  • The container tag's ID is further suffixed with -containter by default, configurable via /config/renderable.php) and changeable on run-time by updating the Renderable.options.containerIdSuffix property.
  • Field labels and values are rendered base on the setup.

Notes

  • Output is formatted with HTML Beautify.
  • Output is sanitized with HTML Purifier.
  • The Renderable object is designed to render once only, use clone keyword to create multiple Renderable objects may end up fall into the variable referencing nightmare, do Deep Copy if multiple instance is really needed.

统计信息

  • 总下载量: 1.63k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2021-12-06