Home  >  Article  >  php教程  >  Yii控制器动作参数绑定处理

Yii控制器动作参数绑定处理

WBOY
WBOYOriginal
2016-06-13 09:07:241002browse

Yii控制器动作参数绑定处理

从版本 1.1.4 开始,Yii 提供了对自动动作参数绑定的支持。就是说,控制器动作可以定义命名的参数,参数的值将由 Yii 自动从 $_GET 填充。

为了详细说明此功能,假设我们需要为 PostController 写一个 create 动作。此动作需要通过$_GET传递两个参数:

category:一个整数,代表帖子(post)要发表在的那个分类的ID。

language:一个字符串,代表帖子所使用的语言代码。

从 $_GET 中提取参数时,我们可以不再像下面这样写相关的验证代码了:

class PostController extends CController{
	public function actionCreate(){
		if(isset($_GET['category']))
			$category=(int)$_GET['category'];
		else
			throw new CHttpException(404,'invalid request');
		if(isset($_GET['language']))
			$language=$_GET['language'];
		else
			$language='en';
		// ......
	}
}

现在使用动作参数功能,我们可以更轻松的完成如上面代码的相关任务:

class PostController extends CController{
	public function actionCreate($category, $language='en'){
		$category = (int)$category;
		echo 'Category:'.$category.'/Language:'.$language;
		// ......
	}
}

注意我们在动作方法 actionCreate 中添加了两个参数。这些参数的名字必须和我们想要从 $_GET 中提取的名字一致。当用户没有在请求中指定 $language 参数时,这个参数会使用默认值 en 。由于 $category 没有默认值,如果用户没有在 $_GET 中提供 category 参数,将会自动抛出一个 CHttpException (错误代码 400) 异常。

从版本1.1.5开始,Yii已经支持数组的动作参数。使用方法如下:

class PostController extends CController{
	public function actionCreate(array $categories){
		// Yii will make sure $categories be an array
	}
}

您可能感兴趣的文章

  • CuteFTP连接ftp服务器时弹出“遇到无效的参数”错误的解决办法
  • linux chmod(文件或文件夹权限设定)命令参数及用法详解
  • thinkphp 的 Action 控制器中的系统常量总结
  • JavaScript浏览器地址栏特效之无敌风火轮特效
  • 基于jQuery控制的左右滚动,自动滚动效果
  • 由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备。 (代码 19)解决办法
  • javascript获取当前完整的url地址以及参数的方法
  • PHP检查浏览器参数防止被SQL注入的函数
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn