laravel 练习(学生表)

页面

页面对数据库的查询处理,不一定是一 一对应的,页面的显示效果而言,不是看数据表提供能什么,而是根据页面需要什么,再使用方法去数据库里面查询。

问题:增加页面不能显示?

导致原因:在加入按给定值查询时出现id冲突;

呈现方式:点击添加按钮没有反应,逻辑正确且没有对页面进行修改。

可分为批量删除和单个删除,

问题:单个删除可执行的情况下,加入批量删除,导致如下现象:

  1. check选中id为1的数据,点击单个删除id为 2 的数据,结果id为1的数据被删除;然后单个删除不能再操作,批量删除可操作;
  2. 批量删除数据后,单个删除不可操作

问题点所在:check选择问题,每次进行数据选中id <check:true>,执行完操作后没有将选中取消(<check:false>是对的,但是现在<check:true>)

使用语句:

$('#tt').datagrid('clearChecked');    不过要选择对使用位置;
批量删除和单个删除概念的理解:
批量删除主要靠使用check方法+数组,每check一次数组[]+1,每次<checn:true>,就相当于选择了一个id;但是单个删除时,只要是使用的语句调用当前id;所以当check选定和调用当前id可能会产生冲突,所以需要取消一个id,再使用另一个id;

1.id的传值和数据的校验 Validator

后台对id进行获取   $this->id = Request::input('id1');
2. 数据的校验Validator
数据的校验并不是对后台逻辑获取后的数据进行校验,而是和获取数据并行或则说互不相干的,对数据的name值进行校验,
   $validator = Validator::make(Request::all(), [
            'num1' =>  'required|numeric',
        ],[
            "required"   => ":attribute不能为空",
            "numeric"  => ":attribute字段值必须是数值",   
        ],[
            'num1' =>  '学生编号',
        ]);
        if ($validator->fails()) {
            throw new Exception($validator->messages()->first());
        }

  

查询的概念:全部查询和范围查询,其实范围查询可以单独写一个逻辑,同时也可以走全部查询的逻辑,不过就是在后台逻辑上面加一个判断,确定走哪条查询路线,

页面:
<div class="menu-right" style="padding: 2px 10px; display: inline; float: right;">
            <input id="**" class="easyui-searchbox" style="300px"
                   data-options="searcher:方法名,menu:'**'">
            <div id="**" style="120px">
                <div id="**" data-options="name:'***'">学生编号</div>
                <div data-options="name:'***'">学生姓名</div>
                <div data-options="name:'***'">班级</div>
            </div>
        </div>


function 方法名(){
            var typeName = $('**').searchbox("getName");
            var val = $('**').searchbox("getValue");

//            此处为从新走了一遍查询,此次查询有了查询有了传入的限制条件
            $('**').datagrid('load',{ "searchKey": typeName, "searchValue": val });

        }

逻辑:
 $name = Request::input('searchKey');
        $val = Request::input('searchValue');
$list = DB::table('数据表')->whereNull('student.deleted_at')
->select()
->orderBy('数据表内元素', 'desc')
->where($name, 'like', '%' . $val . '%')
->paginate((int)Request::input('rows'));

  

原文地址:https://www.cnblogs.com/luxia/p/7737448.html