讨论数量:
第三个参数传个 true 试试
add
和 addLink
第三个参数默认都是 false
如果不行建议使用,帮组函数中的 admin_route 方法
路由
$router->resource('x', 'XController')->names('x');
Controller
use Dcat\Admin\Form;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Layout\Row;
use Dcat\Admin\Widgets\Tab;
class XController extends AdminController
{
public function index(Content $content)
{
return $content
->body(function (Row $row) {
$tab = new Tab();
$status = request('status', 0);
if ($status == 0) {
$tab->add('Tab1', $this->form($status), true);
$tab->addLink('Tab2', admin_route('x.index', ['status' => 1]));
} else {
$tab->addLink('Tab1', admin_route('x.index', ['status' => 0]));
$tab->add('Tab2', $this->form($status), true);
}
$row->column(12, $tab->theme('white'));
return $row;
});
}
protected function form($status)
{
return Form::make(new Model(), function (Form $form) use ($status)
if ($status == 0)
$form->text('Tab1');
else
$form->text('Tab2');
});
}
}
admin_route
还可以指向别的控制器,所有的路由和控制代码如上即可。这样 form
中的代码不会过于雍总,也不要做判断。
$router->resource('x', 'XController')->names('x');
$router->resource('x1', 'X1Controller')->names('x1');
if ($status == 0) {
$tab->add('Tab1', $this->form(), true);
$tab->addLink('Tab2', admin_route('x1.index', ['status' => 1]));
} else {
$tab->addLink('Tab1', admin_route('x.index', ['status' => 0]));
$tab->add('Tab2', $this->form(), true);
}
也可以再一个控制器内写多个 form
推荐文章: