数据详情动作
<h1>数据详情动作</h1>
<p>运行命令</p>
<pre><code class="language-bash">php artisan admin:action</code></pre>
<p>然后输入 <code>5</code> </p>
<pre><code class="language-bash"> Which type of action would you like to make?:
[0] default
[1] grid-batch
[2] grid-row
[3] grid-tool
[4] form-tool
[5] show-tool
[6] tree-tool
&gt; 5 # 输入 5
</code></pre>
<p>接着输入 <code>Action</code> 类名称,这里需要输入 <code>大驼峰</code> 风格的英文字母</p>
<pre><code class="language-bash">
Please enter a name of action class:
&gt; Copy
</code></pre>
<p>类名输入完成之后会出现以下信息让开发者输入类的命名空间,默认的命名空间是 <code>App\Admin\Actions\Show</code>,这里使用默认的就行</p>
<pre><code class="language-bash">
Please enter the namespace of action class [App\Admin\Actions\Show]:
&gt;
</code></pre>
<p>最后生成文件如下</p>
<pre><code class="language-php">&lt;?php
namespace App\Admin\Actions\Show;
use Dcat\Admin\Actions\Response;
use Dcat\Admin\Show\AbstractTool;
use Dcat\Admin\Traits\HasPermissions;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class Copy extends AbstractTool
{
/**
* 按钮标题
*
* @return string
*/
protected $title = 'Title';
/**
* 处理请求,如果不需要接口处理,请直接删除这个方法
*
* @param Request $request
*
* @return Response
*/
public function handle(Request $request)
{
// 获取主键
$key = $this-&gt;getKey();
return $this-&gt;response()
-&gt;success('Processed successfully.')
-&gt;redirect('/');
}
/**
* 如果只是a标签跳转,则在这里返回跳转链接即可
*
* @return string|void
*/
protected function href()
{
// 获取主键
$key = $this-&gt;getKey();
// 获取当前页其他字段
$username = $this-&gt;parent-&gt;model()-&gt;username;
// return admin_url('auth/users');
}
// 如果你想自定义动作按钮的HTML,可以重写此方法
public function html()
{
return parent::html();
}
/**
* 确认弹窗信息,如不需要可以删除此方法
*
* @return string|array|void
*/
public function confirm()
{
// return ['Confirm?', 'contents'];
}
/**
* 权限判断,如不需要可以删除此方法
*
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return true;
}
/**
* 返回请求接口的参数,如不需要可以删除此方法
*
* @return array
*/
protected function parameters()
{
return [];
}
}
</code></pre>
<p>使用</p>
<pre><code class="language-php">$show-&gt;tools(function (Show\Tools $tools) {
$tools-&gt;append(new Copy());
});</code></pre>