laravel admin tab选项卡设置

效果

  1. larverl admin 控制器中加入tab
$tab = new Tab();
//						本页面的模型层引入			
$content = \Admin::grid(datas::class, function (Grid $grid) {
	//写grid  第一个选项卡的内容
});
$two = \Admin::grid(datas::class, function (Grid $grid) {
	//写grid 第二个选项卡的内容
});

//添加两个选项卡
$tab->add('选项卡一', $content); //第一个选项卡的内容
$tab->add('选项卡二', $two);
return $tab;

2.修改配置文件 Encore\Admin\Grid

添加一个方法

    /**
     * Output as string.
     *
     * @return string
     */
    public function __toString()
    {
        return $this->render();
    }
/**
     * Make a grid builder.
     *
     * @return Grid
     */
    protected function grid()
    {
        $tab = new Tab(); //创建一个tab
        $content = \Admin::grid(new GoodsZp(), function (Grid $grid) {
//            $grid = new Grid(new GoodsZp()); 原始的注释掉
            $grid->selector(function (Grid\Tools\Selector $selector) {
                $selector->select('id', '活动状态', [
                    '' => '所有活动',
                    1 => '未开始',
                    2 => '进行中',
                    3 => '已结束',
                    4 => '已失效',
                ], function ($query, $value) {
//                dd($value);
                    $arr = $this->goods->getTimeStart($value[0]);  //符合条件的数组id
//                dd($arr);
                    if (count($arr) > 1) {
                        $query->whereBetween('id', $arr);
                    } else {
                        $query->where('id', $arr[0]);
                    }
                });
            });
			//回收站
            $grid->filter(function ($filter) {
                // 范围过滤器,调用模型的`onlyTrashed`方法,查询出被软删除的数据。
                $filter->scope('trashed', '回收站')->onlyTrashed();
            });
            //回收站恢复
            $grid->actions(function ($actions) {
                if (\request('_scope_') == 'trashed') {
                    $actions->add(new Restore());
                }
            });

            $grid->column('id', __('Id'));
            $grid->column('title', __('Title'));
            $grid->column('goods_no', __('Goods no'));
            $grid->column('created_at', __('Created at'));
            $grid->column('updated_at', __('Updated at'));
            $grid->column('deleted_at', __('Deleted at'));
//            return $grid;
        });
        $tab->add('选项卡一', $content);
        $tab->add('选项卡二', $content);
        return $tab;
    }
Laravel-Admin 中,如果你想要实现在下拉框(通常是一个选择框,如 `select` 或 `dropdown`)的选择变化影响到旁边文本框(`text`、`textarea` 等)的值,你可以通过事件监听和数据绑定来完成。这里是一个简单的步骤说明: 1. **创建模型观察者**(Model Observer):首先,在 Laravel 的 `app/Events` 目录下创建一个事件处理文件,例如 `App\Events\DropdownChanged.php`,并在其中定义一个事件处理方法,比如: ```php namespace App\Events; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Request; use App\Models\YourModel; // 替换为你实际的模型名 class DropdownChanged { use Dispatchable, InteractsWithSockets, SerializesModels; public function __construct(YourModel $model) { $this->model = $model; } public function handle() { // 获取当前选中的下拉框选项ID或其他属性 $selectedOption = Request::input('your_dropdown_name'); // 替换为你的下拉框字段名 // 更新关联的文本框值 if ($selectedOption) { $this->model->your_text_field_name = $selectedOption; // 替换为你的文本框字段名 $this->model->save(); } } } ``` 2. **在控制器或 Model 中触发事件**:在需要的地方,当下拉框值改变时,调用这个事件。例如,在 admin.blade.php 模板里,可以使用 `@pushEvent` 或者在对应的 controller 动作中: ```blade.php <select name="your_dropdown_name"> <option>...</option> <!-- ... --> </select> <!-- 如果你希望每次下拉框更改都触发事件 --> @push('scripts') <script> $('#your_dropdown').on('change', function() { $.event.trigger('dropdown.changed', {id: this.value}); }); </script> @endpush // 或者在 Controller 或其相应服务提供者的动作里手动触发 public function update(Request $request) { // ... event(new DropdownChanged($your_model)); // 将 $your_model 替换成你的模型实例 // ... } ``` 3. **监听并处理事件**:在 `EventServiceProvider` 的 `$listen` 属性中注册事件监听器,确保事件处理器被加载。 记得替换上述示例中的字段名称和模型名称以适应你的项目需求。一旦设置好了,每当下拉框值改变,关联的文本框将会自动更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值