<?php namespace App\Admin\Actions\UserAddress; use App\Admin\Service\UserService; use App\Models\Order as OrderModel; use App\Models\User; use App\Models\UserAddress; use Dcat\Admin\Grid\BatchAction; use Dcat\Admin\Grid\Tools\AbstractTool; use Illuminate\Http\Request; use Dcat\Admin\Grid\RowAction; class UserAddressDeleteAction extends RowAction { /** * 按钮样式定义,默认 btn btn-white waves-effect * * @var string */ protected $style = 'btn btn-white waves-effect'; /** * 按钮文本 * * @return string|void */ public function title() { $buttonName = trans("user-address.labels.delete_user_address"); return $buttonName; } public function html() { $class = $this->getElementClass(); $color = "btn btn-danger btn-sm btn-mini"; // 获取当前行数据ID $id = $this->getKey(); $this->setHtmlAttribute([ 'data-id' => $id, "class" => "{$class} {$color}", ]); return parent::html(); } /** * 确认弹窗,如果不需要则返回空即可 * * @return array|string|void */ public function confirm() { return admin_trans("confirm"); } /** * 处理请求 * 如果你的类中包含了此方法,则点击按钮后会自动向后端发起ajax请求,并且会通过此方法处理请求逻辑 * * @param Request $request */ public function handle(Request $request) { // 获取 parameters 方法传递的参数 $rowData = $request->get('rowData'); try { UserAddress::deleteById($rowData['address_id']); } catch (\Throwable $e) { return $this->response()->error($e->getMessage()); } return $this->response()->success(admin_trans("succeeded"))->refresh(); } /** * 设置请求参数 * * @return array|void */ public function parameters() { return [ 'rowData' => $this->row, ]; } }