新手学习yii2笔记 [ 2.0 版本 ]
YII学习笔记(一)
1.使用 refresh() 或 redirect() 去避免表单重复提交问题。http://www.yiichina.com/doc/guide/2.0/start-forms
2.// 用户浏览器跳转到 http://example.com //return $this->redirect('http://example.com');
3.// 过滤器(控制器)
public function behaviors()
{
$behaviors = parent::behaviors();
// 让api返回json数据
$behaviors['contentNegotiator']['formats']['text/html'] = Response::FORMAT_JSON;
return $behaviors;
}
4. (控制器)
public function actions()
{
$actions = parent::actions();
// 禁用"create" 操作后可用自己在控制器中写的方法
//unset($actions['update'],$actions['create']);
return $actions;
}
actions 可以把其他地方的方法注册进来进行使用
$actions['index']['prepareDataProvider']=[$this,'prepareDataProvider'];可以重写actionIndex方法,自定义获取数据
5.用户认证(http://www.yiichina.com/doc/guide/2.0/rest-authentication)
1).配置user 应用组件;
2).设置 enableSession 属性为 false.
3).设置 loginUrl 属性为null 显示一个HTTP 403 错误而不是跳转到登录界面;
4).在你的REST 控制器类中配置authenticator 行为来指定使用哪种认证方式;
5).在你的user identity class 类中实现 yii\web\IdentityInterface::findIdentityByAccessToken() 方法.(http://www.yiichina.com/doc/guide/2.0/security-authentication);
6).登陆严重页面参考(http://www.yiichina.com/doc/guide/2.0/security-authentication);
6.接收表单数据
$request = Yii::$app->request;
$get = $request->get();
// 等价于: $get = $_GET;
$id = $request->get('id');
// 等价于: $id = isset($_GET['id']) ? $_GET['id'] : null;
$id = $request->get('id', 1);
// 等价于: $id = isset($_GET['id']) ? $_GET['id'] : 1;
$post = $request->post();
// 等价于: $post = $_POST;
$name = $request->post('name');
// 等价于: $name = isset($_POST['name']) ? $_POST['name'] : null;
$name = $request->post('name', '');
// 等价于: $name = isset($_POST['name']) ? $_POST['name'] : '';
当实现 RESTful APIs 接口的时候,你经常需要获取通过PUT, PATCH或者其他的 request methods 请求方法提交上来的参数。你可以通过调用 yii\web\Request::getBodyParam() 方法来获取这些参数。例如,
$request = Yii::$app->request;
// 返回所有参数
$params = $request->bodyParams;
// 返回参数 "id"
$param = $request->getBodyParam('id');
请求方法
你可以通过 Yii::$app->request->method 表达式来获取当前请求使用的HTTP方法。 这里还提供了一整套布尔属性用于检测当前请求是某种类型。 例如,
$request = Yii::$app->request;
if ($request->isAjax) { /* 该请求是一个 AJAX 请求 */ }
if ($request->isGet) { /* 请求方法是 GET */ }
if ($request->isPost) { /* 请求方法是 POST */ }
if ($request->isPut) { /* 请求方法是 PUT */ }
职业第三者 广州
注册时间:2017-05-11
最后登录:2018-07-09
在线时长:7小时22分
最后登录:2018-07-09
在线时长:7小时22分
- 粉丝3
- 金钱125
- 威望30
- 积分495
共 2 条评论
一个飞吻鼓励你一下
$post = $request->post();
// 等价于: $post = $_POST;
$name = $request->post('name');
这里的$request 要 改成 $post