legend3---17、如何抽象和复用控制器中的方法
legend3---17、如何抽象和复用控制器中的方法
一、总结
一句话总结:
比如不同的控制器中都用了检查手机号是否已经注册,是否没注册这样的功能,我应该如何抽象和复用方法
新建一个处理手机号码的模型或者控制器,让其它控制器里面的操作调用这个控制器里面的方法,就是其它控制器里面关于手机号的操作都是方法的调用(空壳)
1、框架中不同用户对应的session应该是不一样的(就是存的session数据,而不只是sessionID)?
laravel不同用户对应的同名的session是独立的:不同用户会根据不同的laravel_session从而将session存在不同的session文件里面
2、什么时候用session,什么时候用缓存,什么时候用配置文件,什么时候用数据库?
- session:临时数据
- 缓存:用户数据
- 配置:系统相关设置
- 数据库:长久数据,当然临时数据也可,所有的都可
3、为什么总是会发生验证码没在session里面的情况,验证码用$request->session()->flash('regcaptcha', $phrase);方式存?
因为闪存session下一次请求过期,而现在进行了手机号是否存在的验证的ajax请求,而此时没有刷新session:也就是没有$request->session()->reflash();
4、js如何判断一个变量是否为对象?
typeof errors == "object"
5、js如何查看一个对象中属性的个数?
div v-if="Object.keys(errors).length"
var obj = {
key1:1,
key2:2,
key3:3
};
Object.getOwnPropertyNames(obj).length
Object.keys(obj).length
6、laravel邮件发送?
\Mail::send('mail.reg',[],function ($message){});:参数2是数组,数据供第一个参数使用
//第二个参数是数组,数组里面的数据就是供 第一个参数的视图使用的
\Mail::send('mail.reg',[],function ($message){
$message->to('404006308@qq.com');
$message->subject('亲爱的用户,恭喜您注册成功');
});
7、js中为什么如下代码console.log(can_submit)的值总是false?
因为代码是异步执行的,console.log(can_submit)很傲娇的,才不会等着ajax完才执行呢
|||-begin
var can_submit=false;
$.post("/is_phone_exist", {'u_phone':phone,'_token':'{{csrf_token()}}'} ,function (data) {
//console.log(data);
if(parseInt(data.valid)==1){
//手机号存在的情况
$("#u_phone").removeClass('reg_danger');
$("#u_phone").addClass('reg_success');
layer_alert_success_mobile(data.message);
can_submit=true;
console.log(can_submit);
}else{
$("#u_phone").removeClass('reg_success');
$("#u_phone").addClass('reg_danger');
layer_alert_fail_mobile(data.message);
can_submit=false;
}
});
console.log(can_submit);
return can_submit;
|||-end
8、同步ajax的post请求实例?
这是为什么很多人用$.ajax而不直接用$.post的原因:因为$.ajax可以设置更多参数
将异步方式设置为false即可:async: false
$.ajax({
type: "POST",
url: "/is_phone_exist",
data: {'u_phone':phone,'_token':'{{csrf_token()}}'},
async: false,
success: function(data){
//console.log(data);
if(parseInt(data.valid)==1){
//手机号存在的情况
$("#u_phone").removeClass('reg_danger');
$("#u_phone").addClass('reg_success');
layer_alert_success_mobile(data.message);
can_submit=true;
}else{
$("#u_phone").removeClass('reg_success');
$("#u_phone").addClass('reg_danger');
layer_alert_fail_mobile(data.message);
can_submit=false;
}
}
});
9、所有可以用session的都可以用数据库?
比如验证码,比如手机验证码,就是数据库相对于session有点慢和消耗大
10、lavarel中session设置值出错:session(['get_new_password_u_id',$u_id]);?
数组的方式是用 =>:session(['get_new_password_u_id'=>$u_id]);
二、内容在总结中
legend3---17、如何抽象和复用控制器中的方法的更多相关文章
- MVC005之页面调用控制器中的方法
描述:控制器在传给页面数据时,有时我们需要对传过来的数据进行二次处理 如: 1:传过来部门编码,但页面上要显示为部门名称 2:格式转换等 我们在写aspx时一般在cs文件中写一个protected的方 ...
- MVC控制器中动作方法返回的结果
在MVC控制器中主要的返回方式有如下几种: 1.Content(): 返回文本类型的ContentResult,比如“这是我做的一个MVC”. 2.File(): 返回文件类型的内容FileResul ...
- CI中控制器名不能和本个 控制器中的方法名相同
控制器名称:application/controllers/tang.php 控制器中方法名称:application/controllers/role.php 中有方法 public funct ...
- ASP.NET MVC 表单提交多层子级实体集合数据到控制器中
于遇到了项目中实体类嵌套多层子级实体集合,并且子级实体集合的数据需要提交保存到数据库中的问题.针对此情况需要进行一些特殊的处理才可以将整个 实体类及子级实体集合数据提交表单到控制器中,解决的方法是根据 ...
- Web APi之控制器选择Action方法过程(九)
前言 前面我们叙述了关于控制器创建的详细过程,在前面完成了对控制器的激活之后,就是根据控制器信息来查找匹配的Action方法,这就是本节要讲的内容.当请求过来时首先经过宿主处理管道然后进入Web AP ...
- iOS_16_开关控制器_modal_代码方法
最后效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill ...
- MVC中动作方法三个特性以及解决同名方法冲突
一.Http请求谓词特性(解决方法同名冲突问题的一个方案) 关于Http谓词特点:经常使用,如果不加上该特性,默认动作方法接收所有谓词的请求一般开发中都会加上谓词,限定请求谓词类型 二.NonActi ...
- MVC 在控制器中获取某个视图动态的HTML代码
ASP.NET MVC 在控制器中获取某个视图动态的HTML代码 如果我们需要动态的用AJAX从服务器端获取HTML代码,拼接字符串是一种不好的方式,所以我们将HTML代码写在cshtml文件中, ...
- asp.net MVC控制器中返回JSON格式的数据时提示下载
Asp.net mvc在接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如下: 视图中js代码: $("# ...
随机推荐
- How to delete SAP* from HANA Tenant database
How to delete SAP* from HANA Tenant database 1.如何登录HANA的多租户(TDC)数据库 使用SAPS4端对应的SAP账户,比如S4D的账户为s4dadm ...
- nginx 请求限制和访问控制
请求限制 限制主要有两种类型: 连接频率限制: limit_conn_module 请求频率限制: limit_req_module HTTP协议的连接与请求 HTTP协议是基于TCP的,如果要完成一 ...
- linux网络编程之socket编程(九)
转眼又快到十一月份了,北京已经是完全进入冬天的节奏,外面冷风嗖嗖的,不过在夜深人静之时,学习永远成了我最快乐的时光,只有此时会觉得自己是如此踏实,虽说白天工作也是编一天程,但是此时的编程,是一种业余爱 ...
- Mybatis之动态SQL&OGNL表达式
1.接口 public interface MemberMapperDynamicSQL { public List<Members> selectMembersByIf(Members ...
- 关于Mybatis查询结果的封装
1.结果封装为List<Object> 接口示例: public List<Members> selectMembersListByName(String name); 配置文 ...
- 除了不要 SELECT * ,程序员使用数据库还应知道的11个技巧
SQL:sum里加条件SELECT SUM( CASE WHEN "V7010" BETWEEN 0 AND 0.1 THEN 1 ELSE 0 END) FROM "C ...
- The 2019 China Collegiate Programming Contest Harbin Site K. Keeping Rabbits
链接: https://codeforces.com/gym/102394/problem/K 题意: DreamGrid is the keeper of n rabbits. Initially, ...
- CSS绝对定位详解
设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块.直线电机生产厂家 元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样.元素 ...
- sql server 计算属性,计算字段的用法与解析
SQL学习之计算字段的用法与解析 一.计算字段 1.存储在数据库表中的数据一般不是应用程序所需要的格式.大多数情况下,数据表中的数据都需要进行二次处理.下面举几个例子. (1).我们需要一个字段同 ...
- vue+大文件上传控件
总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...