route();
$this->product_id = $route->parameters['id'];
$this->product = Product::find($this->product_id);
}
protected function content(Content $content)
{
return $content
->translation($this->translation())
->breadcrumb(
['text' => $this->product->name,'url' => '#'],
['text' => '规格管理'],
)
->title($this->title())
->description('规格管理');
}
public function index(Content $content, $productId = 0)
{
return $this->content($content)
->body($this->grid());
}
public function create(Content $content,$productId = 0)
{
return $this->content($content)->body($this->form());
}
public function update($productId, $id = 0)
{
return $this->form()->update($id);
}
public function store($episodeId = 0)
{
return $this->form()->store();
}
public function edit($productId, Content $content, $id = 0)
{
return $this->content($content)->body($this->form()->edit($id));
}
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new ProductSpec(), function (Grid $grid) {
$grid->model()->orderByDesc('sort');
$grid->column('id')->sortable();
$grid->column('name')->label('primary');
$grid->column('is_opened')->switch();
$grid->column('sort')->editable();
$grid->column('specs')->display(function (){
$html = '';
foreach ($this->specs as $key => $specs){
$br = $key % 3 == 0 && $key != 0 ? '
': '';
$html .= " {$specs['name']}(¥{$specs['price']}){$br}";
}
return $html;
});
$grid->disableViewButton();
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new ProductSpec(), function (Form $form) {
$form->display('id');
$form->hidden('product_id')->value($this->product_id);
$form->text('name')->required();
$form->radio('is_opened')->options(config('global.bool_status'))->default(1);
$form->number('sort');
$form->table('specs', '规格', function (Form\NestedForm $table){
$table->text('name','规格名称')->required();
$table->decimal('price','规格价格')->required();
});
$form->disableViewButton();
$form->disableDeleteButton();
$form->disableListButton();
$form->disableEditingCheck();
$form->disableViewCheck();
$form->disableCreatingCheck();
});
}
}