model()->with(['user','user_info'])->orderBy('id','desc');
$grid->column('id')->sortable();
$grid->column('user_info.avatar','头像')->image("",50);;
$grid->column('user_id','用户')->display(function (){
if(isset($this->user_info->nickname)&&isset($this->user->mobile)){
return $this->user->mobile.'
'.$this->user_info->nickname;
}else{
return "";
}
});
$grid->column('img_url','图片内容')->display(function ($v){
if(isset($v)&&!empty($v)){
$v = json_decode($v,true);
$str = '';
if(!empty($v)&&count($v)>0){
foreach ($v as $item){
$str.='
';
}
}
return $str;
}else{
return "";
}
});
$grid->tableCollapse(false);
$grid->column('content','动态内容')->limit(30);
$grid->column('zan_num');
$grid->column('city','所在位置');
$grid->column('status','状态')->switch();
$grid->column('tag')->display(function ($res){
$tag = DB::table("dynamic_tag")->whereIn('id',explode(',',$res))->get();
$str = '
';
foreach ($tag as $k=>$v){
$str .= ''.$v->title.'';
}
$str .= '
';
return $str;
});
$grid->column('created_at','发布时间');
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
$grid->disableCreateButton();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('user_id','用户ID');
$filter->like('user_info.nickname','用户昵称');
$filter->like('user.mobile','手机号');
$filter->like('content','内容');
$filter->between('created_at', '发布时间')->datetime();
$tag = DynamicTag::query()->get();
$tag_arr = array();
foreach ($tag as $v){
$tag_arr[$v['id']] = $v['title'];
}
$filter->like('tag', '标签')->select($tag_arr);
});
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new DynamicModel(), function (Show $show) {
$show->field('id');
$show->field('user_id','用户ID');
$show->html(function ($res){
$str = "";
if($res['img_url']){
$res = json_decode($res['img_url'],true);
if(count($res)>0){
foreach ($res as $k=>$v){
$str.='
';
}
}else{
$str = "无";
}
}else{
$str = "无";
}
$html = '';
return $html;
});
$show->field('content')->unescape();
// $show->field('status');
$show->field('zan_num');
$show->html(function ($res){
$str = "";
$tag = DB::table("dynamic_tag")->whereIn('id',[$res['tag']])->get();
if(count($tag)>0){
foreach ($tag as $k=>$v){
$str .= ''.$v->title.'';
}
}else{
$str = "无";
}
$html = '';
return $html;
});
$show->field('city','城市');
// $show->field('latitude','纬度');
// $show->field('longitude','经度');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new DynamicModel(), function (Form $form) {
$form->display('id');
$form->text('user_id');
$form->text('img_url');
$form->switch('status')->default(1);
$form->text('zan_num');
$form->text('tag');
});
}
}