求思路,谢谢
laravel-admin
在下面的导航添加的基础上,想添加一个二级导航功能,也就是点击 $SubNav 按钮时触发一个新的导航表单,求思路。谢谢。
<?php
namespace App\Admin\Forms\Navs;
use Encore\Admin\Widgets\Form;
use Illuminate\Http\Request;
use App\Admin\Models\CommonNav;
class admincp_Nav_Nav extends Form
{
public function __construct()
{
$this->title = trans('admin.Nav.Table-name');
parent::__construct();
}
/**
* The form title.
*
* @var string
*/
public $title;
/**
* Handle the form request.
*
* @param Request $request
*
* @return \Illuminate\Http\RedirectResponse
*/
public function handle(Request $request)
{
$validateRules = [
];
$this->validate($request,$validateRules);
$data = $request->except('_token');
CommonNav::truncate();
foreach($data['common_navs'] as $value)
{
if ($value['_remove_'] == '0')
{
CommonNav::create
([
'displayorder' => $value['displayorder'],
'navname' => $value['navname'],
'navurl' => $value['navurl'],
'subnav' => $value['subnav'],
'target' => $value['target'],
]);
}
}
CommonNav::setcache();
admin_success(trans('admin.update_succeeded'));
return back();
}
/**
* Build a form here.
*/
public function form()
{
$this->table('common_navs',trans('admin.Nav.Table-name'), function ($table)
{
$table->text('DisplayOrder', trans('admin.Nav.Table-label.DisplayOrder'))->rules('nullable|numeric|integer|min:1');
$table->text('NavName', trans('admin.Nav.Table-label.NavName'))->rules('required');
$table->text('NavURL', trans('admin.Nav.Table-label.NavURL'))->rules('required');
$SubNav = [
'off' => ['value' => 0, 'text' => trans('admin.no'), 'color' => 'danger'],
'on' => ['value' => 1, 'text' => trans('admin.yes'), 'color' => 'success'],
];
$table->switch('SubNav', trans('admin.Nav.Table-label.SubNav'))->states($SubNav);
$Target = [
'off' => ['value' => 0, 'text' => trans('admin.no'), 'color' => 'danger'],
'on' => ['value' => 1, 'text' => trans('admin.yes'), 'color' => 'success'],
];
$table->switch('Target', trans('admin.Nav.Table-label.Target'))->states($Target);
});
$this->disableReset();
}
/**
* The data of the form.
*
* @return array $data
*/
public function data()
{
$navs = CommonNav::orderBy('displayorder', 'ASC')->get()->toArray();
return [
'common_navs' => $navs,
];
}
}
已解决