1 我們要制作如圖所示的網站配置列表

如果像以前一樣,直接從數據庫中所有數據,前臺遍歷數據的方式,無法生成內容字段對應的文本框,因此,網站配置控制器的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');
}
```
- 第一部分 每日內容
- 第一天 需求分析
- 第二天 ER圖
- 第三天 git
- 第四天 laravel基礎串講
- 第五天 ORM
- 第六天 項目的后臺模板、登錄模塊、表單驗證
- 第七天 用戶模塊
- 7.1登錄中間件
- 7.2用戶的添加
- 7.3用戶的查詢
- 7.4用戶的修改
- 7.4用戶的刪除
- 第八天 分類模塊
- 8.1分類表和分類模型
- 8.2分類排序
- 第九天 文件模塊
- 9.1百度編輯器
- 9.2文件上傳
- 9.3阿里OSS
- 9.4七牛云
- 第十天 網站配置模塊
- 10.1網站配置表結構
- 10.2添加網站配置
- 10.3將數據表中的配置信息寫入config配置文件中
- 10.4瀏覽配置信息
- 第十一天 網站前臺
- 11.1共享變量
- 11.2前臺首頁
- 第十二天 RBAC
- 第十三天 手機驗證碼
- 13.1手機驗證碼
- 13.2發送驗證郵件
- 13.3密碼找回
- 第十四天 實用組件
- 第十五天 服務器方面
- LNMP
- MySQL主從
- laravel主從
- 負載均衡
- 第二部分 所需模塊
- 1登錄模塊
- 2注冊模塊
- 3無限極分類模塊
- 4圖片管理模塊
- 5日志模塊
- 6標簽模塊
- 7購物車模塊
- 8驗證碼模塊
- 9支付模塊
- 10秒殺模塊
- 11驗證碼模塊
- 12消息隊列模塊
- 13ckplayer播放器
- 14美洽客服插件
- 15markdown和百度編輯器