ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
1 我们要制作如图所示的网站配置列表 ![mark](http://on64ewxzt.bkt.clouddn.com/blog/20170731/114104258.png) 如果像以前一样,直接从数据库中所有数据,前台遍历数据的方式,无法生成内容字段对应的文本框,因此,网站配置控制器的index()方法修改如下: ``` public function index() { $data = Config::orderBy('conf_order','asc')->get(); foreach($data as $k=>$v){ switch($data[$k]->field_type){ case "input": $data[$k]['_content'] = '<input type="text" style="width:200px;text-align:left;" name="conf_content[]" value="'.$data[$k]->conf_content.'">'; break; case "textarea": $data[$k]['_content'] = ' <textarea name="conf_content[]">'.$data[$k]->conf_content.'</textarea>'; break; case "radio": //// 1|开启,0|关闭 // <input type="radio" name="conf_content" value='1'>开启 // <input type="radio" name="conf_content" value='0'>关闭 $arr = explode(',',$data[$k]->field_value); $str = ''; foreach($arr as $n=>$m){ $r = explode('|',$m); //判断哪一个单选按钮被选中 $c = ($data[$k]->conf_content == $r[0]) ? 'checked' : ''; //此处的名字一定要[],因为用户可能修改多条配置信息 $str.= ' <input type="radio" name="conf_content[]" '.$c.' value="'.$r[0].'">'.$r[1]; } $data[$k]['_content'] = $str; break; } } return view('admin.config.index',compact('data')); } ``` 前台的配置列表页也需要修改,将列表数据嵌套在一个form表单中,此处需要注意,增加一个隐藏域,表示当前配置项的ID,名字一定要以数组形式命名,加`[ ]` ` <input type="hidden" name="conf_id[]" value="{{$v->conf_id}}">` ``` <form action="{{url('admin/config/changecontent')}}" method="post"> <div class="result_wrap"> <div class="result_content"> {{csrf_field()}} <table class="list_tab"> <tr> <th class="tc">排序</th> <th class="tc">ID</th> <th>标题</th> <th>名称</th> <th>内容</th> <th>操作</th> </tr> @foreach($data as $v) <tr> <td class="tc"> <input type="text" value="{{$v->conf_order}}" onchange="changeOrder(this,{{$v->conf_id}})"> </td> <td class="tc">{{$v->conf_id}}</td> <td> <a href="#">{{$v->conf_title}}</a> </td> <td >{{$v->conf_name}}</td> <td style="width:100px;"> <input type="hidden" name="conf_id[]" value="{{$v->conf_id}}"> {!! $v->_content !!} </td> <td> {{--admin/user/1/edit--}} <a href="{{url('admin/config/'.$v->conf_id.'/edit')}}">修改</a> <a href="javascript:;" onclick="delUser({{$v->conf_id}})">删除</a> </td> </tr> @endforeach </table> <tr> <th></th> <td> <input type="submit" value="提交"> <input type="button" class="back" onclick="history.go(-1)" value="返回"> </td> </tr> </div> </div> </form> ``` 后台应对的修改方法changeContent ``` public function changeContent() { $input = Input::except('_token'); foreach($input['conf_id'] as $k=>$v){ // 获取此条要被替换成的内容 Config::where('conf_id',$v)->update(['conf_content'=>$input['conf_content'][$k]]); } $this->putFile(); return redirect('admin/config'); } ```