6把刀
你的描述:提到一个ajax的json数据 $model->load()
先分析下步骤:判断ajax请求 转换raw HTTP request body 也就是你所发送的json数据,拿到这个数据只要用json::decode转换成数组,那就随你怎么办了
知道步骤了,那就代码了
if(Yii::$app->request->isAjax) 这就是判断ajax的方法,请求都是在 request里的,去看下API就行了那如何转换数据呢,当然方法太多了,目的只有一个就转换数据,那数据从哪来呢,当然是request这个对象里,在哪里处理呢,生命周期,事件。
你这写法可以简化下用data的数据,可以接接yii\helpers\Json:decode(Yii::$app->request->post())
你的描述:提到一个ajax的json数据 $model->load()
先分析下步骤:判断ajax请求 转换raw HTTP request body 也就是你所发送的json数据,拿到这个数据只要用json::decode转换成数组,那就随你怎么办了
知道步骤了,那就代码了
if(Yii::$app->request->isAjax) 这就是判断ajax的方法,请求都是在 request里的,去看下API就行了那如何转换数据呢,当然方法太多了,目的只有一个就转换数据,那数据从哪来呢,当然是request这个对象里,在哪里处理呢,生命周期,事件。
RESTful api 只是一种风格
yii2的 api其实只是普通的constroller他多了的只是内容响应与一些封装。对于普通constroller 返回的数据response->data是html类型,当这个类型为json就是API。所以API并不高明。
而RESTful api其实就是动词,通过路由达到的效果。
而你的需求,你只要理解,API的控制器跟你普通的控制器是一样的,你原来返回的是什么,你在这里也返回是什么,都是通用的,因为api他在内容响应时,会格式化你的response->data,当是API。他会自动格式化成json, 当是普通控制器,他就会是html了。所以
“但我需要返回多表查询后的数据 不知道yii2 RESTful api有没有自己的方法 ”
原来普通怎么返回,你就怎么返回。
@tansuo 路由字面量的意思就是请求过来的东西再处理后交给谁处理(比如http请求过来。可以拿到header头部信息,根据头部信息做一些处理,比如get请求的,我想跳到/site/show这个方法去,post请求我想跳到/site/add这个方法去),跟家里的路由器一样。
而你指的多表查询,插入 查询 删除这些并不是路由要处理的职责。而是model 模型所要处理的职责。- 6把刀 回答了问题 数据库连接对象疑问?
你这个问题得这么跟你说,一台服务器apache
A用户访问服务器,他会产生一个 apache进程。
B用户访问,也会产生一个进程,这是两个进程。而你只要理解这个单例,只争对当前进程就行了。
你现在只要这么理解就成 - 6把刀 回答了问题 数据模型和表单模型如何修改数据
数据模型说穿了,其实就是一个db/model的一个类。你的情况
只要在ProfileForm.php里面定义他自已的属性 public $addr;....那这就是一个他自有的模型。
当然你要继承自 Profile都是可以的,也可以不用继承。你只要想他是单独的两个东西、
可以在ProfileForm里面有个一findProfile的实例类,比如
return Profile::findOne($id);
用这个方法去处理CURL
完全够用。关键点就是模型并不一定是数据表,他只是一个类,跟数据库没关系。
可以参考高级版的frontend他的登陆。User是用户表,还有一个是登陆model.
RESTful api 只是一种风格
yii2的 api其实只是普通的constroller他多了的只是内容响应与一些封装。对于普通constroller 返回的数据response->data是html类型,当这个类型为json就是API。所以API并不高明。
而RESTful api其实就是动词,通过路由达到的效果。
而你的需求,你只要理解,API的控制器跟你普通的控制器是一样的,你原来返回的是什么,你在这里也返回是什么,都是通用的,因为api他在内容响应时,会格式化你的response->data,当是API。他会自动格式化成json, 当是普通控制器,他就会是html了。所以
“但我需要返回多表查询后的数据 不知道yii2 RESTful api有没有自己的方法 ”
原来普通怎么返回,你就怎么返回。
- 6把刀 回答了问题 高级版本分布式部署怎么做比较好
这种 git做法,本人觉的不适合
要是我,我会采用以下方式
五台服务器会有一块是共享存储。相当于5台服务器+一台存储服务器
每一台的服务器的/srv/htdocs/webs都是挂载这存储服务器的一块空间。这样在修改随便哪台服务器的 webs 其实都是同一个地方。 - 6把刀 回答了问题 composer安装失败
你把当前文件夹设置权限没用,他提示的是你composer的权限问题,
~/.composer是这里的文件没有权限
他提示的这种错误,
两种处理方式
1.你完全可以直接用sudo composer global require "fxp/composer-asset-plugin:^1.2.0"
2.修改~/.composer的权限sudo shown -R 当前用户:当前用户 - 6把刀 回答了问题 怎么获取 访问每一个页面的站外 referrer
了解分级与生命周期
级别:应用,模块,控制器
生命周期当然是那几个,也就是应用,模块,控制器都有生命周期按你的需求,在应用级里的进入应用生命周期里去处理这事,是比较合理的