zoukankan      html  css  js  c++  java
  • laravel博客 (config)

    对于一个项目,网站配置是相当重要的,今天记录一下,网站上线基础的配置信息

    1、建立配置表,必须包含的两个字段是name,content,也就是说配置项和配置值。

      但是有一种情况,对于配置信息,是多种多样的,例如说文本域,输入框,单选框,因此需要对配置值进行修饰,需要再加两个字段,field_type,field_value;(类性值只有在单选框中才有用);

    2、配置信息的显示大概应该如下图。基本存在三种类型,对于内容的修饰需要在控制器中进行,根据不同的类型进行显示。

      由于存在三种类型,使用switch进行判断,代码如下,在单选框的选择中稍微麻烦一点,需要先将类性值取出来.

        public function index(){
            $data = Config::orderBy('conf_order','asc')->get();
            foreach ($data as $key => $value) {
                switch ($value->field_type) {
                    case 'input':
                        $data[$key]->_html = "<input type='text' class='lg' name='conf_content[]' value='".$value->conf_content."'>";
                        break;
                    case 'textarea':
                        $data[$key]->_html = "<textarea name='conf_content[]' cols='30' rows='10'>".$value->conf_content."</textarea>";
                        break;
                    case 'radio':
                        $arr = preg_split('/,| /',$value->field_value);
                            foreach ($arr as $k => $v) {
                                $arr1 = explode('|',$v);
                                $c = $value->conf_content == $arr1[0]?'checked':'';
                                $data[$key]->_html .= "<input type='radio' value='$arr1[0]' name='conf_content[]' ".$c.">$arr1[1] &nbsp;&nbsp;&nbsp;&nbsp;";
                            }
                        break;
                }
            }
            return view('admin.config.index',compact('data'));
        }

       需要注意的是:在显示之后每一条配置内容的name是相同的,这个时候如果提交修改配置信息,只能修改一条,因此在name中加上【】,使其变为数组,便可以进行多条信息的更新。

    3、配置项的更新

       修改配置项需在每一条的配置项上加上这个配置的id,否则不知道更新那一条内容,由于多条更新,需要把id的name也改为数组。如下

         <input type="hidden" name="conf_id[]" value="{{$v->conf_id}}">
         {!!$v->_html!!}              #控制器中的form类型输出需要使用 {! !}  否则自动过滤

           然后进行提交更新操作,提交表单得到以下结果

     得到了两个数字,分别为id的和内容的数组,但是有一个共同点就是他们的key是相同的,通过这一点进行更新操作,代码如下

      foreach ($input['conf_id'] as $key => $value) {
            Config::where('conf_id',$value)->update(['conf_content'=>$input['conf_content'][$key]]);
      }

     4、生成配置文件,随时调用配置信息

        public function putFile(){
            $config = Config::pluck('conf_content','conf_name')->all();
            $url = base_path().'configweb.php';
            $confstr = "<?php return ".var_export($config,true).";";
            file_put_contents($url,$confstr);
        }

     生成配置文件以后,在全局都可以进行调用,方法如下

    Config(‘web.conf_name’)
    以此来记录编程之路,偶尔需要静下心来写点东西。
  • 相关阅读:
    BZOJ4553: [Tjoi2016&Heoi2016]序列
    BZOJ4552: [Tjoi2016&Heoi2016]排序
    BZOJ4551: [Tjoi2016&Heoi2016]树
    BZOJ4556: [Tjoi2016&Heoi2016]字符串
    BZOJ4546: codechef XRQRS
    CC 3-Palindromes(manacher)
    hdu3294(manacher)
    hdu4513(manacher)
    poj3974(manacher)
    CF 518D(概率dp)
  • 原文地址:https://www.cnblogs.com/yaradish/p/9460639.html
Copyright © 2011-2022 走看看