**2018/12/22 晴 星期六**
初步学习laravel
首先在routes下,web中创建一个路由访问路径
![](https://box.kancloud.cn/835b098631a5e3eb097617625f1ab537_1310x954.png)
```
Route::get('abc', 'abc@index');
//Hello是控制器的名字 index对应到的方法
```
其次在app/http/controllers/逻辑层中写一个方法
![](https://box.kancloud.cn/0860452a1666911b867cb41d2243235b_1440x855.png)
```
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Pc\CommonController;
class abc extends CommonController
{
public function index()
{
$info = 'Hello World!';
//$pinfo = phpinfo();
return view('abc')->with('info', $info);
//第一个info就是key,第二个就是值上面的$info,这样这个值就可以显示在abc.blade.php里面了;如果views里面你还有一层文件夹abc那就写成view('abc.abc');
}
}
```
注意:use引用一定要对,不然一直是 not found,找不到
第三层也就是视图展示层,这里只要引用逻辑层中的数据就可以了,引用方法暂时只知道 {{ $info }} 这种
![](https://box.kancloud.cn/c0b9a32ca6789ab12eb8f0ac4059e025_1105x796.png)
```
{{ $info }}
```
**2018/12/23 晴 星期天**
什么事mvc?
是软件设计模式.
mvc的工作原理?
url发出请求总入口index.php,带有模块名、控制器名、方法名三个参数,index.php接收到三个参数,去请求控制器中的方法,方法中调用M层获取数据或表操作,传递数据给V层,页面呈现完成或表操作完成。
url …/index.php?m=home&c=news&a=detail&id=5
| |
index.php |
| |
Controllers/News.php/detail |
| |
M V
任何框架都基于MVC软件设计模板:
## 1.目录结构:
数据模型类对应的目录 app/Xxx.php
模板对应的目录 resource/views/xxx.blade.php
控制器对应的目录 app/Http/Controllers/XxxController.php
入口文件对应的目录 public/index.php
配置文件对应的目录 config/***
系统文件对应的目录 vendor
路由文件对应的目录 routes/web.php ???
工作原理:
url地址发出请求,这个请求一定要传参数,请求被总入口public/index.php响应,找路由文件,匹配路由规则。路由对应的匿名函数或控制器方法被执行,在匿名函数中或控制器方法中请求M层及V层。
## 2、 url地址规则(随心所欲)
## 3、 路由的编写 web.php,使用Route这个类,来定义路由规则
Route::get(“路由名称”,“控制器@方法|匿名函数”);
url请求的方式为get,方法get被执行
Route::post(‘路由名称’,”控制器@方法|匿名函数”);
url请求方式为post,方法post被执行。
Route::match([‘get’,’post’],’路由名称’,匿名函数|控制器@方法)
url请方式可以是get及post,match都可以执行
Route::group([‘namespace’=>’Admin’,’prefix’=>’admin’],function(){
Route::get(‘news/add’,””);
})
Route::get(‘路由名称’,”匿名函数|控制器@方法”)
Route::post(‘路由名称’,”匿名函数|控制器@方法”)
Route::match([‘get’,’post’],‘路由名称’,”匿名函数|控制器@方法”)
index.php/news/detail/5
例子:呈现一个文章列表页面。不用M层。
1、 规定url地址
…/index.php/news/index
2、 写路由
## 4、 控制器的编写
1、 放在app/Http/Controllers/XxxController.php
2、 类名和类文件名一致
3、 命名空间 namespace App\Http\Controllers;
4、 可以继承父类Controller
5、 方法名没有要求,一般小写。
控制器方法中接收数据可以使用类Request:
![](https://box.kancloud.cn/5c9b96a8d366e894f38ec4427a2e8f03_576x392.png)
**2018/12/24 晴 星期一**
本地修改SignInController@signIn中APPID与appscret
新增设备归属地字段device_address
**2018/12/25 晴 星期二**
要实现获取手机号码归属地,在app/Http/Controllers/Api/Common/SignInController.php中改写了登录,
```
// 请求地址
$url = 'http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel='.$tel;
// 发起请求
//$res = file_get_contents($url);
$res = curlRequest($url,'','GET');
if ( $res['code'] !== 200 ) return ['code'=>$res['code'],'status'=>false,'msg'=>$res['responseHeader']['msg']];// 判断请求是否成功
$data = $res['response'][$tel];// 接收返回值
if ( !$data ) return ['code'=>200,'status'=>false,'msg'=>'API Exception!'];// 返回值为空
$response['province'] = $data['detail']['province']; // 归属地
$response['city'] = $data['detail']['area'][0]['city']; // 城市
$response['service'] = $data['detail']['operator']; // 运行商
$response['fullname'] = $data['location']; // 运行商全称
return ['code'=>200,'status'=>true,'data'=>$response];
/**
* 手机号码格式验证
* @param $tel
* @return bool
*/
function isPhoneNumber($tel)//手机号码正则表达试
{
return (preg_match("/0?(13|14|15|17|18|19)[0-9]{9}/",$tel))?true:false;
}
/**
* 发起CURL请求
* @param string $url 请求地址
* @param string $data 请求数据
* @param string $method 请求方式
* @return array 一维数组
*/
function curlRequest($url,$data = '',$method = 'POST')
{
$ch = curl_init(); //初始化CURL句柄
curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设为TRUE把curl_exec()结果转化为字串,而s不是直接输出
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); //设置请求方式
curl_setopt($ch,CURLOPT_HTTPHEADER,array("X-HTTP-Method-Override: $method"));//设置HTTP头信息
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置提交的字符串
$document = curl_exec($ch);//执行预定义的CURL
$code = curl_getinfo($ch,CURLINFO_HTTP_CODE); //获取HTTP请求状态码~
curl_close($ch);
$document = json_decode(removeBOM($document),true);
$document['code'] = $code;
return $document;
}
/**
* 检测并移除 BOM 头
* @param string $str 字符串
* @return string 去除BOM以后的字符串
*/
function removeBOM($str = '')
{
if (substr($str, 0,3) == pack("CCC",0xef,0xbb,0xbf)) {
$str = substr($str, 3);
}
return $str;
}
```
**2018/12/28 阴 星期五 PHP之大坑**
上传时要修改js请求路径
APP修改
ysV2ios\js\gologin.js
后台修改路径
app/Http/Controllers/Api/Common/SignInController.php
昨天一整天在看到底是PHP是怎么写入数据库,正常来说只要是ajax请求,那么data中的参数可随意命名,
![](https://box.kancloud.cn/2999fc5cd06bc91b48729de19050cf9f_1083x545.png)
传到后台只要获取在写进数据库,
![](https://box.kancloud.cn/79f1fe14b06f5a8ae9cdf5424f4829e8_1394x783.png)
但是一直不对,参数传到后台了,就是写不进数据库.后来按照数据库的字段命名参数,居然就对了,而且还写进数据库了,不明其意啊,
用户注册或登录时可获取用户手机归属地与设备ip位置
**2019/1/2 晴 星期六**
修改了后台用户管理,resources/views/admin/customer/customerList.blade.php
![](https://box.kancloud.cn/9bc9ec7f5bdecec09e7a10f5b5d0ab23_1000x742.png)
**### laeavel实用文档**
2019/1/5 晴
修改加盟商电话 加盟商 tb\_franchisers 添加了电话号 phone
1、修改加盟商电话视图
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/48414c3de24e4e2bb510f97c0d78b5c6/clipboard.png)
2、修改加盟商电话方法
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/678e5328ffbc4895bae3447518797fbe/clipboard.png)
2019/1/8 晴
后台添加加盟商 在等级价格表 tb\_service\_prices 新增 city\_id 城市字段
1、修改加盟商视图
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/59e45ed151e84076a9f889daefb0b051/clipboard.png)
2、修改加盟商 ServantLevelController.php 方法
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/99aaa467fea8477a844e7aaa79b52ac4/clipboard.png)
3、修改加盟商 ServicePriceController.php 方法
2019/1/13 晴
月嫂订单评价联动
1、添加路由
// 后台服务订单和评价关联起来
Route::get('/service/order/evaluatios/{order}', 'ServiceOrderEvaluationController@Relation');
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/d7fc15d98a7f4bc283967ff7fe08a67d/clipboard.png)
2、修改订单视图
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/59da7f80ca744280ae3afec7da6f9e31/clipboard.png)
3、admin下修改ServiceOrderEvaluationController.php方法
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/56c00fa8a07840f39279458f71d3c78c/clipboard.png)
2019/1/18 晴
订单根据定位到加盟商城市进行分配 app\\Http\\Controllers\\Api\\Customer\\ServiceOrderController.php
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/c4e814fd926043f6a9a416b17fa7697a/clipboard.png)
2019/1/23 晴
加盟商修改
1、先在数据库 tb\_admin\_permissions 中增加加盟商权限
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/2fbc1358974542b98d47ad134c7cbb7f/clipboard.png)
2、添加路由器路径:\\routes\\home.php
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/dd6c3f01562546dbae8e576eae3e81ca/clipboard.png)
3、添加视图路径:resources\\views\\home\\layouts\\frame.blade.php
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/8b28a681c4084bc095a8922d250f743d/clipboard.png)
4、添加app\\Http\\Controllers\\Home\\ServantLevelController.php类
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/7c909115914649f592172cfc4ca97976/clipboard.png)
5、添加app\\Http\\Controllers\\Home\\FranchiserController.php类
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/8c8bdbd846b04969a72f1f280b9a20c6/clipboard.png)
6、添加视图文件\\resources\\views\\home\\levelList\\levelList.blade.php
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/371ae683afa34c5b8b92937b0c38efcf/clipboard.png)
2019/1/26 晴
app中修改电话,加盟商是哪个电话就是那个
1、修改了APP视图 yuesao\_detail.html
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/1e18ca1ef47b4963923bcb49ea8328a4/clipboard.png)
2、增加API路由中新增路由
//获取加盟商手机号
Route::get('/service-phonee/{yui}', 'ServicePhoneController@showphone');
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/c763a559cece4aa6bdd994900e0afaaf/clipboard.png)
3、新增了方法 app\\Http\\Controllers\\Api\\Common\\ServicePhoneController.php
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/12f035b901174a98835069125110f39c/clipboard.png)
4、新增了函数方法 app\\Helpers\\functions.php
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/90430a6907a4411a99e91d1331cfb91f/clipboard.png)
5、在模型中 app\\Models\\Franchiser.php 新增了,要注意会不会出问题
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/11c3e69bfe754277a3a041b7e7be2159/clipboard.png)
2019/1/28 晴
修改了APP列表显示价格 app\\Repositories\\UserServantRepository.php
//补丁:批量更新 user\_servant\_profiles 表所在省id
//by zgm 2019-1-11
$user\_servant\_profiles\_model\=DB::table('user\_servant\_profiles')
\->where('major\_service\_province',0)
\->where('major\_service\_city','<>',0)
\->where('major\_service\_city','<>',1)
\->get();
foreach ($user\_servant\_profiles\_model as $profiles\_temp) {
//查到省id
$citytemp = DB::table('areas')->where('id', $profiles\_temp\->major\_service\_city)->first();
//执行更新
DB::table('user\_servant\_profiles')
\->where('id', $profiles\_temp\->id)
\->update(\['major\_service\_province' => $citytemp\->parentid\]);
//\\Log::info('更新了用户:'.$profiles\_temp->real\_name.'城市id'.$profiles\_temp->major\_service\_city.'下面的省id是:'.$citytemp->parentid);
}
//补丁结束
//查询目的是为了得到省id 开始
$province\_id\_temp\=0;
$franchisers\_model\_temp\=DB::table('franchisers')
\->where('id',$franchiser\_id)
\->first();
if (!empty($franchisers\_model\_temp)) {//如果查出结果
$province\_id\_temp\=$franchisers\_model\_temp\->city\_id;
}
//查询目的是为了得到省id 结束
$servants = DB::table('user\_servant\_profiles as pro')
\->join('servant\_levels as l', 'pro.servant\_level\_id', '=', 'l.id')
\->join('service\_prices as pri', 'pri.servant\_level\_id', '=', 'l.id')
\->where($where)
\->where('pri.baby\_number', 1)
\->where('pri.servant\_type', $type)
\->where('pri.city\_id',$province\_id\_temp);//后添加的
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/22e63fb30b3e4456b87b82dc32c0db1f/clipboard.png)
2019/1/28 晴
修改月嫂内容价格
1、在APP中获取当前加盟商id
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/8548eaa432244d6f8534c623258541e8/clipboard.png)
2、在routes\\api.php路由中修改
Route::get('/user/servants/{user}/{city}', 'ServantController@show');
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/335bbd57bf6a4dd398ca90a8ed571bb7/clipboard.png)
3、修改app\\Http\\Controllers\\Api\\Customer\\ServantController.php方法
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/f605bef9cba544d2aa0cf2df772819e1/clipboard.png)
4、修改数据库查询条件app\\Repositories\\UserServantRepository.php方法
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/9d2b9077081f40c995be3177b01976c8/clipboard.png)
九、登录修改app\\Http\\Controllers\\Api\\Common\\SignInController.php,修改方法
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/d312b76344ce4acfac824a2ca5c83a10/clipboard.png)
2019/2/20 晴
修改搜索
app\\Repositories\\UserServantRepository.php
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/9105216a43c647678c35d5716424ccff/clipboard.png)
2019/2/26 晴
订单数据加载到一定数量点不了
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/7ce5cbc517b849d2a4fbdc25d4b1063b/clipboard.png)
住家月子服务(天) 价格是由服务天数乘于一天价格获取。
证书的
select c.updated\_at,p.employee\_number,p.real\_name,p.contact\_phone,group\_concat(ci.`name`),group\_concat(c.approval\_status)
from tb\_user\_servant\_profiles p,tb\_user\_servant\_credentials c, tb\_servant\_credentials ci
where p.user\_id=c.user\_id and ci.id=c.servant\_credential\_id
GROUP BY p.employee\_number
ORDER BY c.updated\_at DESC
2019/2/26 晴 统一上传至服务器
![](C:/Users/SZX/AppData/Local/YNote/data/weixinobU7Vji0rZ5AH9flAzpfjo68EVu0/f82e69b25d1b4900851979a306ac125f/clipboard.png)
- 翼通长租公寓管理系统
- 版本升级
- 操作手册
- 添加新店
- 给新店分配管理员(店长)
- 新店必须完成的基础信息
- 常见问题
- 翼通经销商管理系统
- 版本升级
- 聚源达印刷管理系统
- 0、升级说明及重要问题注意
- 1、订单状态说明(兼容老系统)
- 四月显示之僵尸产品
- 打印
- Html5中localStorage存储JSON数据并读取JSON数据的实现方法
- 功能说明
- 2.各种操作说明
- 升级说明
- 物联网
- CentosARM
- 树莓派(RPi) CentOS7扩展内存卡剩余空间
- 翼通管理系统快速开发框架LayUI版
- layui模块使用方法
- 默认显示自定义排序方法
- linq查询输出json小例子
- layui json格式
- treetable借鉴
- layui表单验证
- layui图标
- 第一书记信息管理系统
- 多条件查询搜索
- 年龄计算
- 家庭数据打印
- 数据打印框架
- 后台处理获取需打印数据
- js打印方法
- 图片上传
- 单图上传
- 多图上传
- 多图上传CSS样式
- 图片保存
- 高级大招
- SqlServer
- sqlserver 去重复并查询的一列数据拼接用逗号隔开显示
- 修复SqlServer孤立用户
- VS2017提高开发效率的几大技巧看过终生受用,错过继续盲目忙碌。
- 微信开发
- 微信开发基础
- 1、微信公众平台测试帐号的注册与使用
- 2、NuGet引用Senparc微信开发类
- 3、微信接入应答问文件
- 微信开发进阶
- 1、绑定用户把openid、用户头像、昵称绑定到数据库
- 2、阿里大鱼发送验证短信
- 3、测试用户是否关注公众号
- 人人商城
- 1、公众号接入配置
- 2、公众号支付配置
- 3、手机短信配置
- 4、小程序配置
- 5、店铺可视化装修
- 6、三级分销配置
- MarkDown
- 1、markdown写流程图帮助文档
- 阿里短信
- 常用短信模板
- 中国翼通基类库
- 一、说明
- 二、基类库代码(用法索引)
- 1、阿里大鱼短信
- 2、阿里云短信类
- 3、web.config操作类
- 4、字符操作类
- 5、随机数
- 6、拼音类
- 7、身份证类
- 8、SqlServer数据库操作sqleasy
- 9、JSON类
- 999、日志调试类
- 10、QRCode生成二维码
- 11、保存远程图片到本地
- 12、Session类
- 13、ip类
- 14、验证码
- 15、base64类
- 翼通CMS版本升级
- 昆明市公安局政治部
- 3D打印
- 老挝消费机
- 帮助文档
- 工作流开发
- 工作流数据库结构
- 工作流借鉴
- 思想
- 设计工作流要注意的问题
- 编译错误
- 缺少编译器要求的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create"
- EasyUI操作例子
- combogrid绑定
- linq
- 建立linqToSqlServer连接
- 公租房管理系统
- 改进升级更新
- 云南民间工艺传承协会
- 思路
- 问题
- 云南麦根科技有限公司
- 月嫂多APP
- 嫂多点APP
- 管理后台
- Laravel
- 一、开发环境搭建
- 二、如何正确使用 Composer 安装 Laravel 扩展包
- 三、修改数据库连接
- 四、创建一个简单的Laravel例子
- 五. laravel维护日记
- 六、nginx下伪静态配置
- 七、增删查改知识点
- 腾讯借贷反欺诈开发
- ThinkPHP
- 0、ThinkPHP安装
- 2、Zend Studio 13.6.1 的安装和破解
- 1、thinkphp自由查询语句分页
- 3、thinkphp M R 方法详解
- 4、前台循环
- 5、laiui提交表单
- 翼通云官方网站(里面有内容)
- 开发过程中各种问题
- 小鸟云系统的坑
- 更新日志
- 单页面模板
- 翼通智慧网站策划
- 4.05到4.10升级
- phpstom
- 一、设置字体、外观
- 二、phpstom运行php教程
- 三、phpstom debug调试
- 四、PHPStorm 提示502 Bad Gateway
- vscode
- vscode常用插件
- vscode使用git翼通教程
- Git忽略提交规则 - .gitignore配置运维总结
- Git忽略文件不起作用解决方案
- vscode添加新建文件头部注释和函数注释
- git命令
- git命令大全
- vscode每次打开都会覆盖窗口
- git忽略文件格式
- ios au 更新APP store教程
- iOS APP版本更新升级教程
- 上传ipa常见错误解决方案
- 上传ipa报错版本号重复问题解决教程
- hbuider
- Hbuider制作app升级包的简单办法 (升级官方提供的案例)
- linux
- wdcp后台访问安全设置即限制域名/IP访问设置及清除方法
- MSSQL数据库
- 恢复
- SqlServer将没有log文件的数据库文件附加到服务器中
- 1、mssql2019报18456不能登录
- [简易版]幼儿园新生入学报名管理系统
- 物流园电子出门条系统
- 电脑自选超市开发
- 服务商操作手册
- 管理员操作手册
- EcShop
- 一、EcShop5.3升级5.6遇到问题
- 2、ECShop 时间相差8小时、时间不对的问题
- 3、数据库操作
- 3、嵌入类的方法
- 4、入驻商列表sql