dcat-admin

dcat-admin


数据表单动作

<h1>数据表单动作</h1> <p>运行命令</p> <pre><code class="language-bash">php artisan admin:action</code></pre> <p>然后输入 <code>4</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 &amp;gt; 4 # 输入 4 </code></pre> <p>接着输入 <code>Action</code> 类名称,这里需要输入 <code>大驼峰</code> 风格的英文字母</p> <pre><code class="language-bash"> Please enter a name of action class: &amp;gt; Copy </code></pre> <p>类名输入完成之后会出现以下信息让开发者输入类的命名空间,默认的命名空间是 <code>App\Admin\Actions\Form</code>,这里使用默认的就行</p> <pre><code class="language-bash"> Please enter the namespace of action class [App\Admin\Actions\Form]: &amp;gt; </code></pre> <p>最后生成文件如下</p> <pre><code class="language-php">&amp;lt;?php namespace App\Admin\Actions\Form; use Dcat\Admin\Actions\Response; use Dcat\Admin\Form\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-&amp;gt;getKey(); return $this-&amp;gt;response() -&amp;gt;success('Processed successfully.') -&amp;gt;redirect('/'); } /** * 如果只是a标签跳转,则在这里返回跳转链接即可 * * @return string|void */ protected function href() { // 获取主键 $key = $this-&amp;gt;getKey(); // 获取当前页其他字段 $username = $this-&amp;gt;parent-&amp;gt;model()-&amp;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">$form-&amp;gt;tools(function (Form\Tools $tools) { $tools-&amp;gt;append(new Copy()); });</code></pre>

页面列表

ITEM_HTML