职业第三者 2017-05-11 11:03:19 5011次浏览 2条评论 4 1 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 */ }
    
    
    
觉得很赞
您需要登录后才可以评论。登录 | 立即注册