数据详情基本使用
<h1>数据详情基本使用</h1>
<p><code>Dcat\Admin\Show</code>用来显示数据详情,先来个例子,数据库中有posts表:</p>
<pre><code class="language-sql">CREATE TABLE `posts` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`author_id` int(10) unsigned NOT NULL ,
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`content` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`rate` int(255) COLLATE utf8_unicode_ci NOT NULL,
`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\Post</code>,数据仓库为<code>App\Admin\Repositories\Post</code>,下面的代码可以显示posts表的数据详情:</p>
<pre><code class="language-php">&lt;?php
namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use App\Admin\Repositories\Post;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Show;
use Dcat\Admin\Admin;
class PostController extends Controller
{
public function show($id, Content $content)
{
return $content-&gt;header('Post')
-&gt;description('详情')
-&gt;body(Show::make($id, new Post(), function (Show $show) {
$show-&gt;id('ID');
$show-&gt;title('标题');
$show-&gt;content('内容');
$show-&gt;rate();
$show-&gt;created_at();
$show-&gt;updated_at();
$show-&gt;release_at();
}));
}
}</code></pre>
<h2>基本使用方法</h2>
<h3>HTML内容转义</h3>
<p>为了防止XSS攻击, 默认输出的内容都会使用HTML转义,如果你不想转义输出<code>HTML</code>,可以调用<code>unescape</code>方法:</p>
<pre><code class="language-php">$show-&gt;avatar()-&gt;unescape()-&gt;as(function ($avatar) {
return &quot;&lt;img src='{$avatar}' /&gt;&quot;;
});</code></pre>
<h3>设置字段宽度</h3>
<p>字段宽度默认值为“3”,可以设置1-12之间的数字。</p>
<pre><code class="language-php">$show-&gt;created_at-&gt;width(4);</code></pre>
<h3>修改面板的样式和标题</h3>
<pre><code class="language-php">$show-&gt;panel()
-&gt;style('danger')
-&gt;title('post基本信息...');</code></pre>
<p>style的取值可以是primary、info、danger、warning、default</p>
<h3>面板工具设置</h3>
<p>面板右上角默认有三个按钮编辑、删除、列表,可以分别用下面的方式关掉它们:</p>
<pre><code class="language-php">$show-&gt;panel()
-&gt;tools(function ($tools) {
$tools-&gt;disableEdit();
$tools-&gt;disableList();
$tools-&gt;disableDelete();
// 显示快捷编辑按钮
$tools-&gt;showQuickEdit();
});</code></pre>
<h4>自定义复杂工具按钮</h4>
<p>请参考文档<a href="action-show.md">数据详情动作</a></p>
<h3>多列布局</h3>
<p>使用</p>
<pre><code class="language-php">$show-&gt;row(function (Show\Row $show) {
$show-&gt;width(3)-&gt;id;
$show-&gt;width(3)-&gt;name;
$show-&gt;width(5)-&gt;email;
});
$show-&gt;row(function (Show\Row $show) {
$show-&gt;width(5)-&gt;email_verified_at;
$show-&gt;created_at;
$show-&gt;updated_at;
});
$show-&gt;row(function (Show\Row $show) {
$show-&gt;width(3)-&gt;field('profile.first_name');
$show-&gt;field('profile.last_name');
$show-&gt;width(3)-&gt;field('profile.postcode');
});</code></pre>
<p>效果
<a href="{{public}}/assets/img/screenshots/show-rows.png" target="_blank">
<img class="img img-full" src="{{public}}/assets/img/screenshots/show-rows.png">
</a></p>