1 Star 0 Fork 0

剑走偏锋 / pagestest

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
docs-master-model-grid.html 35.69 KB
一键复制 编辑 原始数据 按行查看 历史
剑走偏锋 提交于 2019-06-10 16:18 . 1
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>基于数据模型的表格 - Dcat Page</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="canonical" href="docs-master-model-grid.html" />
<link rel="stylesheet" href="assets/css/laravel.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flexboxgrid/6.3.1/flexboxgrid.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,800,800i,900,900i">
<link rel="stylesheet" href="assets/font-awesome/css/font-awesome.min.css">
</head>
<body class="docs language-default">
<span class="overlay"></span>
<nav class="main">
<a href="index.html" class="brand nav-block">
<span><i>Dcat Page</i></span>
</a>
<ul class="main-nav">
<li class=""><a href="docs.html">Documentation</a></li>
</ul>
<div class="search nav-block invisible">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill="#A1A1A1" d="M5.8 11.7c-1.6 0-3-.6-4.1-1.7S0 7.4 0 5.8s.6-3 1.7-4.1C2.8.6 4.3 0 5.8 0s3 .6 4.1 1.7c2.3 2.3 2.3 6 0 8.3-1 1.1-2.5 1.7-4.1 1.7zM5.8 1c-1.3 0-2.5.5-3.4 1.4C1.5 3.3 1 4.5 1 5.8s.5 2.5 1.4 3.4c.9.9 2.1 1.4 3.4 1.4s2.5-.5 3.4-1.4c1.9-1.9 1.9-5 0-6.9C8.4 1.5 7.1 1 5.8 1z"/><path fill="#A1A1A1" d="M15.5 16c-.1 0-.3 0-.3-.1L9.3 10c-.2-.2-.2-.5 0-.7s.5-.2.7 0l5.9 5.9c.2.2.2.5 0 .7-.1.1-.3.1-.4.1z"/></svg>
<input placeholder="search" type="text" id="search-input" aria-label="search"/>
</div>
<div class="switcher">
<div class="dropdown">
<button class="btn dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Master
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation">
<a role="menuitem" tabindex="-1" href="docs-master-model-grid.html">Master</a>
</li>
</ul>
</div>
</div>
<div class="responsive-sidebar-nav">
<a href="#" class="toggle-slide menu-link btn">&#9776;</a>
</div>
</nav>
<nav id="slide-menu" class="slide-menu" role="navigation">
<div class="brand">
<a href="/">
</a>
</div>
<ul class="slide-main-nav">
<li><a href="index.html">Home</a></li>
<li class=""><a href="docs.html">Documentation</a></li>
</ul>
<div class="slide-docs-nav">
<h2>Documentation</h2>
<ul class="slide-docs-version">
<li>
<h2>Version</h2>
<ul>
<li>
<div class="switcher">
<div class="dropdown">
<button class="btn dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Master
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation">
<a role="menuitem" tabindex="-1" href="docs-master-model-grid.html">Master</a>
</li>
</ul>
</div>
</div>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<h2>入门</h2>
<ul>
<li><a href="docs-master-installation.html">安装</a></li>
<li><a href="docs-master-notice.html">开发前必读</a></li>
<li><a href="docs-master-quick-start.html">快速开始</a></li>
<li><a href="docs-master-content-layout.html">页面内容和布局</a></li>
<li><a href="docs-master-new.html">与Laravel Admin的异同</a></li>
</ul>
</li>
<li>
<h2>表格</h2>
<ul>
<li><a href="docs-master-model-grid.html">基本使用</a></li>
<li><a href="docs-master-model-grid-actions.html">行的使用和扩展</a></li>
<li><a href="docs-master-model-grid-column.html">列的使用和扩展</a></li>
<li><a href="docs-master-model-grid-custom-tools.html">工具栏</a></li>
<li><a href="docs-master-model-grid-double.html">双表头</a></li>
<li><a href="docs-master-model-grid-data.html">表格数据源</a></li>
<li><a href="docs-master-model-grid-filters.html">查询过滤</a></li>
<li><a href="docs-master-model-grid-export.html">数据导出</a></li>
</ul>
</li>
<li>
<h2>表单</h2>
<ul>
<li><a href="docs-master-model-form.html">基本使用</a></li>
<li><a href="docs-master-model-form-upload.html">图片/文件上传</a></li>
<li><a href="docs-master-model-form-fields.html">Form组件使用</a></li>
<li><a href="docs-master-model-form-field-management.html">Form组件管理</a></li>
<li><a href="docs-master-model-form-data.html">表单数据源</a></li>
<li><a href="docs-master-model-form-validation.html">表单验证</a></li>
<li><a href="docs-master-model-form-callback.html">表单回调</a></li>
</ul>
</li>
<li>
<h2><a href="docs-master-model-show.html">详情页</a></h2>
</li>
<li>
<h2><a href="docs-master-model-tree.html">模型树</a></h2>
</li>
<li>
<h2><a href="docs-master-model-repository.html">数据仓库</a></h2>
</li>
<li>
<h2><a href="docs-master-trans.html">多语言</a></h2>
</li>
<li>
<h2>开发工具</h2>
<ul>
<li><a href="docs-master-helpers-scaffold.html">代码生成器</a></li>
<li><a href="docs-master-helpers-extension.html">扩展包管理</a></li>
<li><a href="docs-master-helpers-ide.html">IDE自动补全</a></li>
<li><a href="docs-master-helpers-icon.html">图标</a></li>
<li><a href="docs-master-helpers-routes.html">路由</a></li>
</ul>
</li>
<li>
<h2><a href="docs-master-extension.html">开发扩展</a></h2>
</li>
<li>
<h2>页面组件</h2>
<ul>
<li><a href="docs-master-widgets-charts.html">图表</a></li>
<li><a href="docs-master-widgets-data-card.html">数据卡片</a></li>
<li><a href="docs-master-widgets-form.html">表单</a></li>
<li><a href="docs-master-widgets-dialog-form.html">表单弹窗</a></li>
<li><a href="docs-master-widgets-navbar.html">导航菜单</a></li>
<li><a href="docs-master-widgets-dropdown.html">下拉菜单</a></li>
<li><a href="docs-master-widgets-tab.html">选项卡</a></li>
<li><a href="docs-master-widgets-alert.html">告警框</a></li>
<li><a href="docs-master-widgets-tooltip.html">提示条</a></li>
<li><a href="docs-master-widgets-checkbox.html">单、复选框</a></li>
<li><a href="docs-master-widgets-markdown.html">Markdown</a></li>
<li><a href="docs-master-widgets-box.html">卡片</a></li>
<li><a href="docs-master-widgets-accordion.html">折叠卡</a></li>
<li><a href="docs-master-widgets-terminal.html">命令窗</a></li>
<li><a href="docs-master-widgets-table.html">表格</a></li>
<li><a href="docs-master-widgets-js.html">JS组件</a></li>
</ul>
</li>
<li>
<h2><a href="docs-master-assets.html">JS代码与静态资源加载</a></h2>
</li>
<li>
<h2><a href="docs-master-permission.html">权限控制</a></h2>
</li>
<li>
<h2><a href="docs-master-custom-authentication.html">自定义登陆认证</a></h2>
</li>
<li>
<h2><a href="docs-master-custom-navbar.html">自定义头部导航</a></h2>
</li>
<li>
<h2><a href="docs-master-qa.html">常见问题</a></h2>
</li>
<li>
<h2><a href="docs-master-upgrade.html">升级注意事项</a></h2>
</li>
<li>
<h2><a href="docs-master-change-log.html">Change log</a></h2>
</li>
</ul>
</div>
</nav>
<div class="docs-wrapper container">
<section class="sidebar">
<small><a href="#" id="doc-expand" style="font-size: 11px; color: #B8B8B8;">EXPAND ALL</a></small>
<ul>
<li>
<h2>入门</h2>
<ul>
<li><a href="docs-master-installation.html">安装</a></li>
<li><a href="docs-master-notice.html">开发前必读</a></li>
<li><a href="docs-master-quick-start.html">快速开始</a></li>
<li><a href="docs-master-content-layout.html">页面内容和布局</a></li>
<li><a href="docs-master-new.html">与Laravel Admin的异同</a></li>
</ul>
</li>
<li>
<h2>表格</h2>
<ul>
<li><a href="docs-master-model-grid.html">基本使用</a></li>
<li><a href="docs-master-model-grid-actions.html">行的使用和扩展</a></li>
<li><a href="docs-master-model-grid-column.html">列的使用和扩展</a></li>
<li><a href="docs-master-model-grid-custom-tools.html">工具栏</a></li>
<li><a href="docs-master-model-grid-double.html">双表头</a></li>
<li><a href="docs-master-model-grid-data.html">表格数据源</a></li>
<li><a href="docs-master-model-grid-filters.html">查询过滤</a></li>
<li><a href="docs-master-model-grid-export.html">数据导出</a></li>
</ul>
</li>
<li>
<h2>表单</h2>
<ul>
<li><a href="docs-master-model-form.html">基本使用</a></li>
<li><a href="docs-master-model-form-upload.html">图片/文件上传</a></li>
<li><a href="docs-master-model-form-fields.html">Form组件使用</a></li>
<li><a href="docs-master-model-form-field-management.html">Form组件管理</a></li>
<li><a href="docs-master-model-form-data.html">表单数据源</a></li>
<li><a href="docs-master-model-form-validation.html">表单验证</a></li>
<li><a href="docs-master-model-form-callback.html">表单回调</a></li>
</ul>
</li>
<li>
<h2><a href="docs-master-model-show.html">详情页</a></h2>
</li>
<li>
<h2><a href="docs-master-model-tree.html">模型树</a></h2>
</li>
<li>
<h2><a href="docs-master-model-repository.html">数据仓库</a></h2>
</li>
<li>
<h2><a href="docs-master-trans.html">多语言</a></h2>
</li>
<li>
<h2>开发工具</h2>
<ul>
<li><a href="docs-master-helpers-scaffold.html">代码生成器</a></li>
<li><a href="docs-master-helpers-extension.html">扩展包管理</a></li>
<li><a href="docs-master-helpers-ide.html">IDE自动补全</a></li>
<li><a href="docs-master-helpers-icon.html">图标</a></li>
<li><a href="docs-master-helpers-routes.html">路由</a></li>
</ul>
</li>
<li>
<h2><a href="docs-master-extension.html">开发扩展</a></h2>
</li>
<li>
<h2>页面组件</h2>
<ul>
<li><a href="docs-master-widgets-charts.html">图表</a></li>
<li><a href="docs-master-widgets-data-card.html">数据卡片</a></li>
<li><a href="docs-master-widgets-form.html">表单</a></li>
<li><a href="docs-master-widgets-dialog-form.html">表单弹窗</a></li>
<li><a href="docs-master-widgets-navbar.html">导航菜单</a></li>
<li><a href="docs-master-widgets-dropdown.html">下拉菜单</a></li>
<li><a href="docs-master-widgets-tab.html">选项卡</a></li>
<li><a href="docs-master-widgets-alert.html">告警框</a></li>
<li><a href="docs-master-widgets-tooltip.html">提示条</a></li>
<li><a href="docs-master-widgets-checkbox.html">单、复选框</a></li>
<li><a href="docs-master-widgets-markdown.html">Markdown</a></li>
<li><a href="docs-master-widgets-box.html">卡片</a></li>
<li><a href="docs-master-widgets-accordion.html">折叠卡</a></li>
<li><a href="docs-master-widgets-terminal.html">命令窗</a></li>
<li><a href="docs-master-widgets-table.html">表格</a></li>
<li><a href="docs-master-widgets-js.html">JS组件</a></li>
</ul>
</li>
<li>
<h2><a href="docs-master-assets.html">JS代码与静态资源加载</a></h2>
</li>
<li>
<h2><a href="docs-master-permission.html">权限控制</a></h2>
</li>
<li>
<h2><a href="docs-master-custom-authentication.html">自定义登陆认证</a></h2>
</li>
<li>
<h2><a href="docs-master-custom-navbar.html">自定义头部导航</a></h2>
</li>
<li>
<h2><a href="docs-master-qa.html">常见问题</a></h2>
</li>
<li>
<h2><a href="docs-master-upgrade.html">升级注意事项</a></h2>
</li>
<li>
<h2><a href="docs-master-change-log.html">Change log</a></h2>
</li>
</ul>
</section>
<article>
<h1>基于数据模型的表格</h1>
<p><a name="example"></a></p>
<h2>简单示例</h2>
<p><code>Dcat\Admin\Grid</code>类用于生成基于数据模型的表格,先来个例子,数据库中有<code>movies</code></p>
<pre><code class="language-sql">CREATE TABLE `movies` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`director` int(10) unsigned NOT NULL,
`describe` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`rate` tinyint unsigned NOT NULL,
`released` enum(0, 1),
`release_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
</code></pre>
<p>对应的数据模型为<code>App\Models\Movie</code>,对应的数据仓库为<code>App\Admin\Repositories\Movie</code>,数据仓库代码如下:</p>
<pre><code class="language-php">&lt;?php
namespace App\Admin\Repositories;
use Dcat\Admin\Repositories\EloquentRepository;
use App\Models\Movie as MovieModel;
class Movie extends EloquentRepository
{
protected $eloquentClass = MovieModel::class;
}</code></pre>
<p>下面的代码可以生成表<code>movies</code>的数据表格:</p>
<pre><code class="language-php">
use App\Admin\Repositories\Movie;
use Dcat\Admin\Grid;
use Dcat\Admin\Facades\Admin;
$grid = new Grid(new Movie);
// 第一列显示id字段,并将这一列设置为可排序列
$grid-&gt;id('ID')-&gt;sortable();
// 第二列显示title字段,由于title字段名和Grid对象的title方法冲突,所以用Grid的column()方法代替
$grid-&gt;title;
// 第三列显示director字段,通过display($callback)方法设置这一列的显示内容为users表中对应的用户名
$grid-&gt;director-&gt;display(function($userId) {
return User::find($userId)-&gt;name;
});
// 第四列显示为describe字段
$grid-&gt;describe;
// 第五列显示为rate字段
$grid-&gt;rate;
// 第六列显示released字段,通过display($callback)方法来格式化显示输出
$grid-&gt;released('上映?')-&gt;display(function ($released) {
return $released ? '是' : '否';
});
// 下面为三个时间字段的列显示
$grid-&gt;release_at;
$grid-&gt;created_at;
$grid-&gt;updated_at;
// filter($callback)方法用来设置表格的简单搜索框
$grid-&gt;filter(function ($filter) {
// 设置created_at字段的范围查询
$filter-&gt;between('created_at', 'Created Time')-&gt;datetime();
});
</code></pre>
<p><a name="base"></a></p>
<h2>基本使用方法</h2>
<p><a name="add-column"></a></p>
<h3>添加列</h3>
<blockquote>
<p>通过<code>$grid-&gt;username('用户名');</code>的方式添加列时IDE默认是不会自动补全的,这时候可以通过<code>php artisan admin::ide-helper</code>生成IDE提示文件,具体请参考<a href="docs-master-helpers-ide.html">IDE自动补全</a></p>
</blockquote>
<pre><code class="language-php">// 直接通过字段名`username`添加列
$grid-&gt;username('用户名');
// 效果和上面一样
$grid-&gt;column('username', '用户名');
// 或者用属性的方式
// 没有设置label,会自动用翻译文件的翻译,具体请参照“字段翻译”章节
$grid-&gt;username;
// 添加多列
$grid-&gt;columns('email', 'username' ...);</code></pre>
<p><a name="modify-model"></a></p>
<h3>修改来源数据</h3>
<pre><code class="language-php">$grid-&gt;model()-&gt;where('id', '&gt;', 100);
$grid-&gt;model()-&gt;orderBy('id', 'desc');
$grid-&gt;model()-&gt;take(100);
...
</code></pre>
<p>其它查询方法可以参考<code>eloquent</code>的查询方法.</p>
<p><a name="display"></a></p>
<h3>修改显示输出</h3>
<pre><code class="language-php">$grid-&gt;text()-&gt;display(function($text) {
return str_limit($text, 30, '...');
});
// 允许混合使用多个“display”方法
$grid-&gt;name()-&gt;display(function ($name) {
return "&lt;b&gt;$name&lt;/b&gt;";
})-&gt;display(function ($name) {
return "&lt;span class='label'&gt;$name&lt;/span&gt;";
});
$grid-&gt;email-&gt;display(function ($email) {
return "mailto:$email";
});
// 可以直接写字符串
$grid-&gt;username-&gt;display('...');
// 添加不存在的字段
$grid-&gt;column_not_in_table-&gt;display(function () {
return 'blablabla....';
});</code></pre>
<p><code>display()</code>方法接收的匿名函数绑定了当前行的数据对象,可以在里面调用当前行的其它字段数据</p>
<pre><code class="language-php">$grid-&gt;first_name();
$grid-&gt;last_name();
// 不存的字段列
$grid-&gt;column('full_name')-&gt;display(function () {
return $this-&gt;first_name.' '.$this-&gt;last_name;
});</code></pre>
<p><a name="wrap"></a></p>
<h3>设置外层容器</h3>
<pre><code class="language-php"> // 更改表格外层容器
$grid-&gt;wrap(function (Renderable $view) {
$tab = Tab::make();
$tab-&gt;add('示例', $view);
$tab-&gt;add('代码', $this-&gt;code(), true);
return $tab;
});</code></pre>
<p><a name="disable-create"></a></p>
<h3>设置创建按钮</h3>
<pre><code class="language-php">// 禁用
$grid-&gt;disableCreateButton();
// 显示
$grid-&gt;showCreateButton();
// 禁用快捷创建按钮
$grid-&gt;disableQuickCreateButton();
// 显示快捷创建按钮
$grid-&gt;showQuickCreateButton();</code></pre>
<p><a name="disable-filter"></a></p>
<h3>设置查询过滤器</h3>
<pre><code class="language-php">// 禁用
$grid-&gt;disableFilter();
// 显示
$grid-&gt;showFilter();
// 禁用过滤器按钮
$grid-&gt;disableFilterButton();
// 显示过滤器按钮
$grid-&gt;showFilterButton();</code></pre>
<p><a name="disable-export"></a></p>
<h3>设置导出数据按钮</h3>
<pre><code class="language-php">// 禁用
$grid-&gt;disableExport();
// 显示
$grid-&gt;showExport();</code></pre>
<p><a name="disable-row-selector"></a></p>
<h3>设置行选择checkbox</h3>
<pre><code class="language-php">// 禁用
$grid-&gt;disableRowSelector();
// 显示
$grid-&gt;showRowSelector();</code></pre>
<p><a name="disable-actions"></a></p>
<h3>设置行操作列</h3>
<pre><code class="language-php">// 禁用
$grid-&gt;disableActions();
// 显示
$grid-&gt;showActions();
// 禁用详情按钮
$grid-&gt;disableViewButton();
// 显示详情按钮
$grid-&gt;showViewButton();
// 禁用编辑按钮
$grid-&gt;disableEditButton();
// 显示编辑按钮
$grid-&gt;showEditButton();
// 禁用快捷编辑按钮
$grid-&gt;disableQuickEditButton();
// 显示快捷编辑按钮
$grid-&gt;showQuickEditButton();
// 禁用删除按钮
$grid-&gt;disableDeleteButton();
// 显示删除按钮
$grid-&gt;showDeleteButton();
</code></pre>
<p><a name="disable-batch-actions"></a></p>
<h3>设置批量操作按钮</h3>
<pre><code class="language-php">// 禁用
$grid-&gt;disableBatchActions();
// 显示
$grid-&gt;showBatchActions();
// 禁用批量删除按钮
$grid-&gt;disableBatchDelete();
// 显示批量删除按钮
$grid-&gt;showBatchDelete();</code></pre>
<p><a name="disable-tools"></a></p>
<h3>设置工具栏</h3>
<pre><code class="language-php">// 禁用
$grid-&gt;disableToolbar();
// 显示
$grid-&gt;showToolbar();</code></pre>
<p><a name="disable-refresh"></a></p>
<h3>设置刷新按钮</h3>
<pre><code class="language-php">// 禁用
$grid-&gt;disableRefreshButton();
// 显示
$grid-&gt;showRefreshButton();</code></pre>
<p><a name="disable-pagination"></a></p>
<h3>设置分页条</h3>
<pre><code class="language-php">// 禁用
$grid-&gt;disablePagination();
// 显示
$grid-&gt;showPagination();</code></pre>
<p><a name="paginate"></a></p>
<h3>设置每页显示行数</h3>
<pre><code class="language-php">// 默认为每页20条
$grid-&gt;paginate(15);</code></pre>
<p><a name="dper-pages"></a></p>
<h3>设置分页选择器选项</h3>
<pre><code class="language-php">$grid-&gt;perPages([10, 20, 30, 40, 50]);
// 设置为空数组可以禁用分页选择器
$grid-&gt;perPages([]);</code></pre>
<p><a name="relations"></a></p>
<h2>关联模型</h2>
<p><a name="one"></a></p>
<h3>一对一</h3>
<p><code>users</code>表和<code>profiles</code>表通过<code>profiles.user_id</code>字段生成一对一关联</p>
<pre><code class="language-sql">
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `profiles` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`age` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`gender` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;</code></pre>
<p>对应的数据模以及数据仓库分别为:</p>
<pre><code class="language-php">
// 模型
class User extends Model
{
public function profile()
{
return $this-&gt;hasOne(Profile::class);
}
}
class Profile extends Model
{
public function user()
{
return $this-&gt;belongsTo(User::class);
}
}
// 数据仓库
use App\Models\User as UserModel;
class User extends EloquentRepository
{
protected $eloquentClass = UserModel::class;
}
</code></pre>
<p>通过下面的代码可以关联在一个grid里面:</p>
<pre><code class="language-php">$grid = new Grid(new User);
// 关联 profile 表数据
$grid-&gt;model()-&gt;with('profile');
$grid-&gt;id('ID')-&gt;sortable();
$grid-&gt;name();
$grid-&gt;email();
$grid-&gt;column('profile.age');
$grid-&gt;column('profile.gender');
//or
$grid-&gt;profile()-&gt;age();
$grid-&gt;profile()-&gt;gender();
$grid-&gt;created_at();
$grid-&gt;updated_at();
</code></pre>
<p><a name="one-many"></a></p>
<h3>一对多</h3>
<p><code>posts</code>表和<code>comments</code>表通过<code>comments.post_id</code>字段生成一对多关联</p>
<pre><code class="language-sql">
CREATE TABLE `posts` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`content` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `comments` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`post_id` int(10) unsigned NOT NULL,
`content` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;</code></pre>
<p>对应的数据模和数据仓库分别为:</p>
<pre><code class="language-php">
class Post extends Model
{
public function comments()
{
return $this-&gt;hasMany(Comment::class);
}
}
class Comment extends Model
{
public function post()
{
return $this-&gt;belongsTo(Post::class);
}
}
// 数据仓库
use App\Models\Post as PostModel;
class Post extends EloquentRepository
{
protected $eloquentClass = PostModel::class;
}
use App\Models\Comment as CommentModel;
class Comment extends EloquentRepository
{
protected $eloquentClass = CommentModel::class;
}</code></pre>
<p>通过下面的代码可以让两个模型在grid里面互相关联:</p>
<pre><code class="language-php">// Post
$grid = new Grid(new Post);
// 关联 comment 表数据
$grid-&gt;model()-&gt;with('comments');
$grid-&gt;id('id')-&gt;sortable();
$grid-&gt;title();
$grid-&gt;content();
$grid-&gt;comments('评论数')-&gt;display(function ($comments) {
$count = count($comments);
return "&lt;span class='label label-warning'&gt;{$count}&lt;/span&gt;";
});
$grid-&gt;created_at();
$grid-&gt;updated_at();
// Comment
$grid = new Grid(new Comment);
// 关联 post 表数据
$grid-&gt;model()-&gt;with('post');
$grid-&gt;id('id');
$grid-&gt;post()-&gt;title();
$grid-&gt;content();
$grid-&gt;created_at()-&gt;sortable();
$grid-&gt;updated_at();</code></pre>
<p><a name="many-many"></a></p>
<h3>多对多</h3>
<p><code>users</code><code>roles</code>表通过中间表<code>role_users</code>产生多对多关系</p>
<pre><code class="language-sql">
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(190) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_username_unique` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
CREATE TABLE `roles` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`slug` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `roles_name_unique` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
CREATE TABLE `role_users` (
`role_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
KEY `role_users_role_id_user_id_index` (`role_id`,`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci</code></pre>
<p>对应的数据模和数据仓库分别为:</p>
<pre><code class="language-php">
class User extends Model
{
public function roles()
{
return $this-&gt;belongsToMany(Role::class);
}
}
class Role extends Model
{
public function users()
{
return $this-&gt;belongsToMany(User::class);
}
}
// 数据仓库
use App\Models\User as UserModel;
class User extends EloquentRepository
{
protected $eloquentClass = UserModel::class;
}</code></pre>
<p>通过下面的代码可以让两个模型在grid里面互相关联:</p>
<pre><code class="language-php">$grid = new Grid(new User);
// 关联 role 表数据
$grid-&gt;model()-&gt;with('roles');
$grid-&gt;id('ID')-&gt;sortable();
$grid-&gt;username();
$grid-&gt;name();
$grid-&gt;roles()-&gt;pluck('name')-&gt;label();
$grid-&gt;created_at();
$grid-&gt;updated_at();</code></pre>
</article>
</div>
<footer class="main">
<ul>
<li class=""><a href="docs.html">Documentation</a></li>
</ul>
<p>Built by <b>Jiang qinghua</b>. Copyright &copy; 2019</p>
<p class="less-significant">
<a href="http://jackmcdade.com">
Designed by<br>
<svg xmlns="http://www.w3.org/2000/svg" width="128.2" height="28" viewBox="0 0 128.2 28"><g fill="#c3c3c3"><path d="M14.2.4v1.4l-1.4-.3.3 4.5c.1 1.5 0 3-.1 4.5 0 .4-.1.8-.1 1.2-.1.4-.1.8-.3 1.2-.1.4-.3.7-.5 1.1-.2.3-.5.6-.9.9-.4.2-.9.4-1.5.6-.6.2-1.1.3-1.6.3-.6 0-1.2-.1-1.6-.3-.5-.2-.9-.6-1.1-1-.3-.5-.5-1-.6-1.6-.1-.6-.1-1.3 0-2.1 0-.2.1-.5.2-.7-.1-.2 0-.4.1-.6l.3-.6 1.1.4c.2 0 .5.1.8.2.3.1.5.1.6.2 0 .2 0 .4-.1.5-.1.2-.1.3-.2.4-.1.1-.2.3-.2.4-.1.2-.1.3-.1.5L6 10.8c-.1.3-.2.7-.2 1.1 0 .4.1.8.2 1.2.2.4.4.7.6 1 .3.3.6.4 1 .3.6 0 1.1-.3 1.4-.6.3-.4.5-.9.7-1.7.1-.7.2-1.6.2-2.8V5.4c0-.6-.1-1.3-.1-2-.1-.6-.2-1.3-.3-2H5.7c-.7 0-1.5 0-2.2.2-.3.1-.6.2-1 .4-.3.1-.6.4-.9.6-.2.3-.4.6-.5 1-.1.3-.1.7 0 1 .1.5.3.8.4.9v-.1c0-.4.1-.8.4-1 .3-.2.6-.3.9-.3.3 0 .6.1.9.3.3.2.4.6.4 1s-.1.8-.4 1c-.3.2-.6.3-1 .3-.8 0-1.4-.2-1.8-.7-.4-.4-.7-.9-.8-1.5C0 4 0 3.4.2 2.7c.2-.6.5-1.1 1-1.5.4-.3.8-.5 1.2-.7.4-.1.9-.2 1.4-.3.5-.1.9-.1 1.4-.1h2.9c.6 0 1.1 0 1.6.1.5 0 1 .1 1.5.1s1 .1 1.5.1c.4.1.9.1 1.5 0zM25.2 14.3c0 .2.1.4.1.6 0 .2.1.4.1.7-1-.1-2-.2-3-.1-1.1.1-2.1.2-3 .4 0-.2-.1-.4-.1-.5 0-.2-.1-.4-.1-.5.2 0 .5-.1.7-.1.2 0 .4-.1.6-.1-.1-1.5-.3-3.1-.5-4.6-.5.1-.9.1-1.4.2-.5.1-.9.1-1.4.2-.2.7-.3 1.3-.5 2s-.3 1.3-.5 2h.6c.1 0 .3 0 .4.1v.9c0 .1 0 .2-.1.3H14v-1.2h1c.2-.5.3-1 .4-1.5.1-.5.3-1 .4-1.5.2-.6.3-1.2.5-1.7.2-.6.3-1.2.5-1.7.2-1.1.4-2.1.6-3.2.2-1.1.3-2.1.4-3.2h-1.4c0-.2.1-.4.1-.6 0-.2 0-.4.1-.6h5.8l.2 1.2h-1c.3 2.1.7 4.3 1 6.5.3 2.2.7 4.4 1 6.5h1.6zM17.5 9c.4-.1.7-.1 1.1-.2.4-.1.8-.1 1.2-.2-.2-1-.3-2-.5-2.9-.2-1-.4-1.9-.6-2.9-.2 1-.4 2.1-.5 3.1-.3 1-.5 2.1-.7 3.1zM36.7 10.4h-.6c0 .6 0 1.2-.2 1.9-.2.6-.5 1.2-1 1.6-.5.5-1 .9-1.6 1.1-.6.3-1.3.4-2 .5-.6.1-1.1.1-1.8 0-.6-.1-1.1-.4-1.6-.7-.2-.2-.5-.4-.8-.7-.3-.3-.5-.5-.6-.8-.3-.5-.5-1-.6-1.5-.2-.5-.3-.9-.4-1.4-.1-.5-.2-1-.2-1.5s0-1 .1-1.6c.2-1 .4-2 .8-2.9.4-.9.8-1.7 1.4-2.3.5-.7 1.2-1.2 1.9-1.6.7-.3 1.4-.5 2.2-.5.3 0 .5 0 .8.1.3.1.5.2.7.4.3.3.7.7 1 1.2.3.5.6 1.2.7 1.9h.6v.6l-2.5.4c-.3.1-.5.1-.6 0-.1 0-.2-.1-.2-.2-.1-.1-.1-.2 0-.3h.4c.2-.2.3-.3.3-.6v-.7c0-.5-.2-.9-.5-1.3l-.4-.4c-.2-.1-.4-.1-.6 0-.2 0-.4.2-.6.4-.2.2-.4.5-.5.9-.3.2-.4.6-.5.9-.1.3-.2.5-.2.7-.6 2.6-.7 5.3-.2 8 .1.3.2.7.3 1s.3.6.5.9c.2.3.5.5.8.7.3.2.6.2 1 .1.6-.1 1-.4 1.4-1 .3-.5.6-1.1.7-1.8.1-.3.1-.6.1-.9v-.5c-.2 0-.4 0-.6-.1-.1-.1-.2-.2-.2-.3 0-.1 0-.2.1-.3h3.4c0 .1 0 .2-.1.3-.1.1-.1.2-.1.3z"/><path d="M48 14.2c.1.2.3.3.5.4.2.1.5.1.7 0 .1.1.1.2.1.4s-.1.3-.2.4c-.1.1-.2.2-.4.2h-1.4c-.3 0-.7 0-1-.1-.3-.1-.7-.2-1-.4-.3-.2-.5-.4-.7-.7-.2-.3-.3-.6-.3-1V9.9v-.4c0-.2-.1-.3-.2-.5s-.3-.3-.4-.4c-.2-.1-.4-.1-.7-.1-.1 0-.2 0-.5.1-.2.3-.3.5-.5.8-.2.3-.3.5-.5.7 0 .8 0 1.5-.1 2.2 0 .7-.1 1.5-.1 2.1h1.4v1.1c-.5 0-.9.1-1.3 0-.4 0-.8 0-1.2-.1-.4 0-.8-.1-1.2-.1H37.3c-.1 0-.2 0-.3-.1-.1 0-.1-.1-.1-.2s-.1-.3-.1-.4v-.4c0-.1.1-.2.1-.2.2.1.4.2.6.1s.4-.2.5-.4c0-.1.1-.3.1-.7 0-.4 0-.9.1-1.6 0-.6.1-1.3.1-2.1s0-1.6.1-2.4c0-.8 0-1.5.1-2.3 0-.7.1-1.3.1-1.8v-.7c0-.2-.1-.4-.2-.6-.1-.2-.3-.3-.5-.4-.2-.1-.4 0-.6.1 0-.2-.1-.5-.1-.7 0-.2 0-.4-.1-.7 1 0 2 .1 3 .1.9 0 1.9.1 3 .1v.3c0 .1 0 .3.1.4v.4c0 .1 0 .2-.1.2-.1.1-.2.1-.3.1-.1 0-.2 0-.4-.1-.1-.1-.3-.1-.4-.2-.1-.1-.3-.1-.3-.1-.1.9-.1 1.9-.1 2.9s-.1 2-.1 3.1c.7-1.2 1.4-2.5 2-3.8.2-.3.3-.6.4-.9.1-.3.3-.6.5-.9.2-.3.4-.5.7-.7.3.3.6.2.9.1.3-.1.7-.1 1 0 .3.1.6.2.9.5.2.3.4.6.4 1s.1.8 0 1.1v.5c0 .2-.1.3-.2.4-.1.2-.2.3-.4.4-.2.1-.4.1-.5.2-.1 0-.3.1-.4.1h-.4c-.2-.3-.4-.4-.4-.6-.1-.2-.1-.4 0-.5.1-.2.2-.3.3-.3.1 0 .2-.1.4-.1.2-.1.3-.2.3-.3.1-.2.1-.3.1-.5 0-.3-.1-.5-.1-.7-.1-.2-.2-.3-.3-.3-.2 0-.3 0-.5.1s-.3.2-.5.4-.3.4-.4.6c-.1.2-.3.5-.4.7-.1.3-.3.6-.4.8-.2.2-.3.5-.4.8-.4.9-.8 1.7-1.2 2.5.3 0 .6-.1 1 0h1c.3 0 .7.1 1 .2.3.1.6.3.8.6.3.3.4.6.5 1 .1.4.1.8.2 1.1l.2 2.1c0 .2.1.5.1.7 0 .4.1.7.3.9zM71.7 13.9c.2.2.4.4.7.5.3.1.5 0 .8-.1 0 .2.1.3.1.6.1.2.1.4.1.6h-1.1s-.8 0-1.3.1h-2.3v-.2c0-.1.1-.2.2-.3.1-.1.2-.2.4-.3.2-.1.3-.1.6-.1.1 0 .1-.2.1-.7v-1.6c0-.6 0-1.2-.1-1.9s0-1.1 0-1.5V6.4c0-.7.1-1.5.1-2.2-.6 1.3-1.1 2.7-1.6 4.1-.5 1.5-1 3-1.5 4.4 0 0 .1.1.1.2-.2 0-.4 0-.7.1-.3.1-.5.1-.7.1-.5-1.9-1.1-3.7-1.6-5.5-.5-1.8-1.1-3.6-1.6-5.5-.1 1-.1 2-.1 3 0 1.1-.1 2.1-.1 3.2s0 2.1-.1 3.2c0 1-.1 2-.1 3h1.4v1.1c-.5 0-.9.1-1.3 0-.4 0-.8 0-1.2-.1-.4 0-.8-.1-1.2-.1H58c-.1 0-.2 0-.3-.1-.1 0-.1-.1-.1-.2s-.1-.3-.1-.4v-.4c0-.1.1-.2.1-.2.2.1.4.2.6.1s.4-.2.5-.4c0-.1.1-.3.1-.7 0-.4 0-.9.1-1.6 0-.6.1-1.3.1-2.1V7.2c0-.8 0-1.5.1-2.3 0-.7.1-1.3.1-1.8v-.7c0-.2-.1-.4-.2-.6-.1-.2-.3-.3-.5-.4-.2-.1-.4 0-.6.1 0-.2-.1-.5-.1-.7 0-.2 0-.4-.1-.7 1 0 2 .1 3 .1.9 0 1.9.1 3 .1 0 .3-.1.5-.4.7.3 1.3.6 2.6 1 3.9l1.2 3.9c.2-.6.4-1.3.6-1.9l.6-1.8c.3-.5.5-1.1.8-1.7.2-.6.4-1.3.6-2-.1 0-.3 0-.4-.1-.1 0-.2 0-.4-.1-.1 0-.1-.1-.1-.3 0-.1.1-.2.1-.3.1-.1.2-.1.3-.1h4.5c.1 0 .3.1.4.2.1.1.2.2.2.4s0 .3-.2.3c-.1-.1-.2-.1-.3-.1-.1 0-.2.1-.3.1-.2.4-.3.8-.4 1.3-.1.5-.1.9-.1 1.4-.2 2.8-.2 5.6 0 8.4 0 .3 0 .5.1.7-.1.3 0 .5.2.7zM81.7 12h-.4c0 .4 0 .9-.2 1.3-.1.4-.4.8-.7 1.1-.3.3-.7.6-1.1.8-.4.2-.9.3-1.3.4-.4.1-.8 0-1.2 0-.4-.1-.8-.2-1.1-.5-.2-.1-.3-.3-.5-.5s-.3-.4-.4-.6c-.2-.4-.3-.7-.4-1-.1-.3-.2-.6-.3-1-.1-.3-.1-.6-.1-1 0-.3 0-.7.1-1.1.1-.7.3-1.4.5-2 .3-.6.6-1.1.9-1.6s.8-.8 1.3-1.1c.5-.3 1-.4 1.5-.4.2 0 .4 0 .6.1.2.1.3.1.5.3.2.2.4.4.6.8.2.4.4.8.5 1.3h.4v.4l-1.7.3c-.2.1-.3.1-.4 0-.1 0-.1-.1-.2-.2v-.2h.4c.1-.1.2-.2.2-.4v-.5c0-.3-.1-.6-.3-.9l-.3-.3c-.1-.1-.2-.1-.4 0-.1 0-.3.1-.4.3-.1.2-.3.4-.4.6l-.3.6c-.1.2-.1.4-.1.5-.4 1.8-.5 3.6-.1 5.5.1.2.1.4.2.7l.3.6c.1.2.3.3.6.5.2.1.4.1.7.1.4-.1.7-.3 1-.7.2-.4.4-.8.5-1.2 0-.2.1-.4.1-.6v-.3h-.4c-.1 0-.1-.1-.1-.2s0-.2.1-.2h2.4v.2c-.5-.1-.5 0-.6.1z"/><path d="M83.5 14.2c.2-4.3.3-8.5.2-12.8h-1.8V.9.4c.7 0 1.3 0 2-.1.7 0 1.3 0 2-.1.8-.2 1.6-.2 2.4-.1.8.1 1.6.3 2.4.5.7.3 1.4.7 1.9 1.2s.9 1.1 1.1 1.8c.3 1.3.4 2.5.3 3.8 0 1.2-.2 2.4-.3 3.6 0 .4-.1.8-.2 1.2-.1.4-.3.8-.5 1.1-.3.5-.8 1-1.3 1.3-.5.3-1.1.5-1.7.6-.5.1-.9.2-1.4.1-.5 0-.9 0-1.4-.1h-4.9c-.2-.4-.1-.8.2-1.1.2-.2.3-.2.5-.3.2.3.4.3.5.4zm5.9-12.3c-.4-.3-.8-.5-1.3-.6-.5-.1-1-.1-1.5-.1-.3 4.5-.2 9.1.4 13.6.2 0 .4 0 .5-.1.2 0 .4-.1.6-.1.3-.1.6-.2.9-.4.3-.2.6-.4.8-.7.2-.3.4-.6.5-1s.2-.7.2-1.1c.4-2.1.4-4.2.2-6.3-.1-.6-.2-1.2-.4-1.9 0-.4-.4-.9-.9-1.3zM102.4 9.7c-.6-.1-1.3-.1-2 0s-1.4.4-2 .8l-.2-1.4.9-.1c0-.4-.1-.7-.1-1 0-.2-.1-.5-.1-.9-.3 0-.6.1-.9.1-.3 0-.6.1-1 .1-.2.7-.3 1.3-.4 1.8-.1.5-.2 1.1-.4 1.6l.2-.1.7.6c-.4.2-.8.6-1.2 1.1-.4.5-.7 1-.9 1.5l-.9-.5c0-.1.1-.2.2-.4s.2-.3.2-.4c.1-.2.2-.5.3-1 .1-.4.2-.9.4-1.3.1-.5.2-.9.3-1.3.1-.4.2-.7.2-.9l.3-1.2.3-1.2c.2-.7.3-1.4.4-2.1.1-.7.2-1.4.3-2.2h-.6l.1-.8 4-.1.1.8h-.2-.2c.1.7.2 1.4.3 2l.3 1.8.3 1.8c.1.6.2 1.3.4 2h.6l.3.9zm-3.6-3.6c-.1-.7-.2-1.3-.3-2-.1-.6-.3-1.3-.4-2-.1.6-.2 1.3-.4 2.1-.1.7-.3 1.5-.5 2.2l1.6-.3z"/><path d="M124.9 20.1c0-.3.1-.6.3-.8.2-.2.4-.3.7-.4.3-.1.5 0 .8.1.3.1.5.3.6.5.3.4.6.9.7 1.4.2.5.2 1 .2 1.5s-.1 1-.3 1.5c-.2.5-.4 1-.7 1.4-.6.9-1.4 1.6-2.4 2-1 .5-2 .7-3 .7-1.5 0-2.8-.3-3.9-1s-2.1-1.4-3-2.4c-.9-1-1.8-2.1-2.5-3.2-.8-1.2-1.5-2.3-2.3-3.5-1.1 1.2-2.4 2.2-3.9 3-1.5.8-3 1.1-4.5 1-1.1 0-2.1-.1-3-.5-.9-.3-1.6-.8-2.2-1.4-.6-.6-.9-1.3-1.1-2.2-.2-.8-.1-1.7.2-2.7.3-.9.7-1.6 1.3-2.2.6-.6 1.2-1.1 2-1.5.7-.4 1.5-.6 2.4-.7.8-.1 1.7 0 2.6.2v-5-4.6h-1.8V.8.3l3.7-.1c.8-.2 1.6-.2 2.4-.1.8.1 1.6.3 2.4.5.7.3 1.4.7 1.9 1.2s.9 1.1 1.1 1.8c.3 1.2.4 2.4.3 3.6-.1 1.2-.2 2.5-.4 3.7-.1 1-.4 2-.8 3-.5 1-1 2-1.7 2.9.3.4.6.8.8 1.2.3.4.5.8.8 1.2.5.8 1.1 1.6 1.7 2.5.6.8 1.3 1.6 2 2.4.7.7 1.5 1.3 2.4 1.8s1.8.7 2.9.8c1.1 0 2.1-.2 3-.7.9-.5 1.6-1.2 2.1-2.2.2-.4.3-.8.4-1.3.1-.5 0-.9-.1-1.3-.2.1-.4.2-.6.2-.2 0-.4 0-.6-.1-.2-.1-.4-.2-.5-.4s-.4-.5-.4-.8zm-22 .9c1.5-.4 2.8-1 3.7-1.8.9-.8 1.7-1.7 2.3-2.8-.2-.2-.3-.5-.6-.7-.6-.7-1.2-1.4-1.9-1.9 0 .6.1 1.2.1 1.8 0 .6.1 1.1.2 1.6v.1h-4.3c-.1-.2-.1-.4 0-.7 0-.2.1-.3.3-.5.3-.3.7-.4 1.1-.2l.1-3.5c-.5-.2-1-.3-1.5-.3s-1.1 0-1.6.1c-.6.1-1.1.3-1.6.6s-.9.7-1.3 1.1c-.4.4-.7.9-.9 1.5-.2.5-.3 1.1-.3 1.6 0 .7.2 1.3.6 1.8.4.5.9.9 1.4 1.4.2.2.5.3.8.5.3.1.7.2 1.1.3.4.1.8.1 1.2.1.3 0 .7 0 1.1-.1zm6.4-19.1c-.4-.3-.8-.5-1.2-.6-.5-.1-.9-.1-1.4-.1-.1 1.7-.2 3.4-.3 5.3-.1 1.9-.1 3.7 0 5.6.6.4 1.2.8 1.7 1.4.5.5 1 1.1 1.5 1.6.2-.6.4-1.2.6-1.9.2-.6.3-1.2.3-1.7.2-1.1.2-2.1.3-3.1 0-1 0-2.1-.1-3.1-.1-.6-.2-1.2-.4-1.9-.2-.6-.5-1.1-1-1.5z"/><path d="M116.5 1.2h-1.8V.4c.5 0 .9 0 1.2-.1s.7 0 1.1 0h1.1s.8 0 1.3-.1c.9 0 1.8 0 2.8-.1.9 0 1.8 0 2.8-.1v3.6h-1.3c-.1 0-.1-.1 0-.1.1-.2.1-.4.1-.6s0-.4-.1-.6l-.3-.6c-.1-.2-.2-.3-.4-.4-.2-.1-.4-.2-.6-.2h-.7c-.3 0-.5.1-.8.1-.3.1-.5.2-.6.4-.1.2-.1.3-.1.3v.3c0 .7-.1 1.3-.1 2 0 .6-.1 1.3-.1 1.9v1c.6-.2 1.2-.3 1.9-.4.6-.1 1.2-.3 1.9-.4 0 .1.1.2.1.3V7c0 .2-.1.3-.1.4-.1.1-.1.2-.1.3-.1.1-.2.1-.4.2-.1 0-.3.1-.4.1-.5.1-.9.2-1.4.3-.5.1-.9.1-1.4.2 0 1-.1 2-.2 2.9-.1 1-.1 1.9-.2 2.9.8.2 1.5.3 2 .1.6-.2 1.2-.5 1.9-1 .2-.1.2-.3.2-.5v-.7c0-.2.1-.5.2-.6.1-.2.3-.3.7-.4.4 0 .6.1.7.4.1.3.2.7.2 1.1 0 .5 0 .9-.1 1.4-.1.5-.1.9 0 1.2h-1.4c-.4 0-.8 0-1.2.1-.4 0-.8 0-1.2.1h-1.3c-.9 0-1.7 0-2.5.1-.7.1-1.6.1-2.4.1-.2-.2-.2-.4-.2-.7 0-.2.1-.5.3-.6.2-.2.3-.3.6-.3.2-.1.5 0 .7.1.1-2.1.2-4.3.1-6.5-.7-2.2-.7-4.3-.5-6.5z"/></g></svg>
</a>
</p>
</footer>
<div class="fixed-bottom-btn"><a class="waves-effect waves-light" id="go-top"><i class="fa fa-chevron-up"></i></a></div>
<script>
var DMS = {
version: 'master',
getDocUrl: function (doc) {
var temp = 'docs-master-{doc}.html';
return temp.replace('{doc}', doc);
}
};
(function () {
function indices() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'assets/indices/master.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
}
setTimeout(indices, 1);
})();
</script>
<script src="assets/js/laravel.js"></script>
<script src="assets/js/viewport-units-buggyfill.js"></script>
<script>window.viewportUnitsBuggyfill.init();</script>
</body>
</html>
1
https://gitee.com/jqhph/pagestest.git
git@gitee.com:jqhph/pagestest.git
jqhph
pagestest
pagestest
master

搜索帮助