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、如何抽象和复用控制器中的方法的更多相关文章

  1. MVC005之页面调用控制器中的方法

    描述:控制器在传给页面数据时,有时我们需要对传过来的数据进行二次处理 如: 1:传过来部门编码,但页面上要显示为部门名称 2:格式转换等 我们在写aspx时一般在cs文件中写一个protected的方 ...

  2. MVC控制器中动作方法返回的结果

    在MVC控制器中主要的返回方式有如下几种: 1.Content(): 返回文本类型的ContentResult,比如“这是我做的一个MVC”. 2.File(): 返回文件类型的内容FileResul ...

  3. CI中控制器名不能和本个 控制器中的方法名相同

    控制器名称:application/controllers/tang.php 控制器中方法名称:application/controllers/role.php  中有方法 public  funct ...

  4. ASP.NET MVC 表单提交多层子级实体集合数据到控制器中

    于遇到了项目中实体类嵌套多层子级实体集合,并且子级实体集合的数据需要提交保存到数据库中的问题.针对此情况需要进行一些特殊的处理才可以将整个 实体类及子级实体集合数据提交表单到控制器中,解决的方法是根据 ...

  5. Web APi之控制器选择Action方法过程(九)

    前言 前面我们叙述了关于控制器创建的详细过程,在前面完成了对控制器的激活之后,就是根据控制器信息来查找匹配的Action方法,这就是本节要讲的内容.当请求过来时首先经过宿主处理管道然后进入Web AP ...

  6. iOS_16_开关控制器_modal_代码方法

    最后效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill ...

  7. MVC中动作方法三个特性以及解决同名方法冲突

    一.Http请求谓词特性(解决方法同名冲突问题的一个方案) 关于Http谓词特点:经常使用,如果不加上该特性,默认动作方法接收所有谓词的请求一般开发中都会加上谓词,限定请求谓词类型 二.NonActi ...

  8. MVC 在控制器中获取某个视图动态的HTML代码

    ASP.NET MVC 在控制器中获取某个视图动态的HTML代码   如果我们需要动态的用AJAX从服务器端获取HTML代码,拼接字符串是一种不好的方式,所以我们将HTML代码写在cshtml文件中, ...

  9. asp.net MVC控制器中返回JSON格式的数据时提示下载

    Asp.net mvc在接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如下: 视图中js代码: $("# ...

随机推荐

  1. Qt QPushButton 背景色

    正常状态:黑底(背景色),白字(前景色),圆角,向外凸起 鼠标停留:背景和前景反色 鼠标按下:背景色变为淡蓝色,向内凹陷 ui->pushButton->setStyleSheet(&qu ...

  2. Elasticsearch7

    elasticsearch 由来 点击进入 elasticsearch 基本概念 点击进入 elasticsearch 安装 点击进入 elasticsearch 增删改查 点击进入 elastics ...

  3. [#Linux] CentOS 7 安装微信详细过程

    微信安装 微信安装过程如下: 1,下载最新版本tar.gz压缩包 wget https://github.com/geeeeeeeeek/electronic-wechat/releases/down ...

  4. Powershell-常用脚本

    function Test-Port { Param([string]$ComputerName,$port = 5985,$timeout = 1000) try { $tcpclient = Ne ...

  5. Android笔记(三十一)Android中线程之间的通信(三)子线程给主线程发送消息

    先看简单示例:点击按钮,2s之后,TextView改变内容. package cn.lixyz.handlertest; import android.app.Activity; import and ...

  6. CentOS8 NextCloud 私有云存储搭建

    本文首发:https://www.somata.work/2019/CentOS8NextCloudBuild.html 之前发现 Owncloud 越来越捞了,推出了企业版和社区版,近几日突然发现原 ...

  7. 【公有云】在阿里云中申请免费ssl证书

    准备 拥有阿里云账号 拥有域名,最好是在同个账号下,方便操作. 申请证书 第一步:进入申请 第二步:选择证书类型 第三步:支付,就是走个流程,不用给钱 第四步:填写证书信息 第五步:验证域名 第六步: ...

  8. springboot知识点【笔记】

    # **一.**Spring Boot 入门 ## 1.Spring Boot 简介 > 简化Spring应用开发的一个框架:>> 整个Spring技术栈的一个大整合:>> ...

  9. Prometheus+Grafana监控

    什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控系统 ...

  10. SQL:自增主键的获取@@IDENTITY 和 SCOPE_IDENTITY 的区别

    @@IDENTITY 返回当前会话所有作用域的最后一个ID SCOPE_IDENTITY() 返回当前作用域的最后一个ID 返回上面语句执行后产生的自增主键,这个是目前最可靠的方式: insert i ...