laravel 练习(学生表)
页面
页面对数据库的查询处理,不一定是一 一对应的,页面的显示效果而言,不是看数据表提供能什么,而是根据页面需要什么,再使用方法去数据库里面查询。
增
问题:增加页面不能显示?
导致原因:在加入按给定值查询时出现id冲突;
呈现方式:点击添加按钮没有反应,逻辑正确且没有对页面进行修改。
删
可分为批量删除和单个删除,
问题:单个删除可执行的情况下,加入批量删除,导致如下现象:
- check选中id为1的数据,点击单个删除id为 2 的数据,结果id为1的数据被删除;然后单个删除不能再操作,批量删除可操作;
- 批量删除数据后,单个删除不可操作
问题点所在: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="width:300px" data-options="searcher:方法名,menu:'**'"> <div id="**" style="width: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'));