column('id')->sortable(); $grid->column('user.nick_name', '昵称'); $grid->column('talk_content') ->if(function($column){ return mb_strlen($this->talk_content)>=30 ? 1:0; })->then(function (Grid\Column $column) { $column->display(function(){ return mb_substr($this->talk_content, 0, 30); })->expand(function () { // 返回显示的详情 // 这里返回 content 字段内容,并用 Card 包裹起来 $card = new Card(null, $this->talk_content); return "
$card
"; }); })->else(function (Grid\Column $column) { $column->display(function(){ return $this->talk_content; }); }); $grid->column('praise_num')->sortable(); $grid->column('is_show')->switch(); $grid->column('created_at'); $grid->model()->orderBy('created_at', 'desc'); $grid->disableActions(); $grid->disableCreateButton(); $grid->filter(function (Grid\Filter $filter) { $filter->like('talk_content'); $filter->equal('user_id', '留言人')->select(admin_route('user.api')); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new UserTalk(), function (Show $show) { $show->field('id'); $show->field('user_id'); $show->field('talk_content'); $show->field('praise_num'); $show->field('is_show'); $show->field('created_at'); $show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new UserTalk(), function (Form $form) { $form->display('id'); $form->text('user_id'); $form->text('talk_content'); $form->text('praise_num'); $form->text('is_show'); $form->display('created_at'); $form->display('updated_at'); }); } }