说到 REST ,现在大多的所谓 REST 风格,没有达到真正 REST 定义的那样, 不过面向实用我们不必拘泥这些概念上的问题,如果有看官觉得觉得实现不够 REST 敬请拍砖, 具体问题我们可以具体讨论。 首先做一下接口的 URL 规划,假设我们要面对的资源是 item , 现在我们暴露5个接口供其他应用调用, 分别是: 对于所有 item 列表调用: GET /rest/item 对于某个 item 信息调用: GET /rest/item/(\d+) 创建一个 item: POST /rest/item 更新一个 item: PUT /rest/item/(\d+) 删除一个 item: DELETE /rest/item/(\d+) 然后根据规划在主配置里注册路由: 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( // REST routers array('rest/list', 'pattern'=>'rest/item', 'verb'=>'GET'), array('rest/view', 'pattern'=>'rest/item/', 'verb'=>'GET'), array('rest/create', 'pattern'=>'rest/item', 'verb'=>'POST'), array('rest/update', 'pattern'=>'rest/item/', 'verb'=>'PUT'), array('rest/delete', 'pattern'=>'rest/item/', 'verb'=>'DELETE'), ), ), 这里需要吐槽一下官方文档,路由配置这块基本什么说明都没写, 比如rules数组中的配置数组,里的各种参数含义, 比如verb,利用这个参数就能好好的绑定路由, 不必再到controller里进行判断了。只有api参考里有些关于属性和方法的说明, 主要信息来源还得靠在 Google 中自行寻觅。 然后开始编写 REST 的 Controller, 安装 yii 框架的约定,我们建立 protected/controllers/RestControllerphp
把id传入action不就好了吗?
就是保存完毕之后,
return $this->redirect(['shop/detail','id'=>'商品ID');
actionDetail($id)
还是说你有特殊的要求?
1 确保数据是用户输入安全的(safe)
使用rules方法批量设置Model属性为输入安全的
[php] view plaincopy
public function rules() {
return array(
array('username, password, gender,
email, tel', 'safe'),
);
}
2 如果设置了场景(Scenario),确保该场景匹配输入安全的规则
[php] view plaincopy
public function rules() {
array('gender, email, tel', 'safe', 'on'=> 'create,update'),
}
在属性设置前设置一下场景(Scenario),
[php] view plaincopy
$model->setScenario('create');
$model->attributes = $_POST['user'];
//如果不用Criteria,也可以直接写condition语句(findAll要保持一样,但是offset和limit就要自己计算了),例如
//$count = Mymodel::model()->count("uid=:uid", array("uid"=>intval($_GET["uid"])));
//处理分页
$count = Mymodel::model()->count($criteria);
$pages = new CPagination($count);
$pages->pageSize = 20;
$pages->applyLimit($criteria);
//获取数据
$data = Mymodel::model()->findAll($criteria);
$this->render('index', array(
"model" => $mymodel,//下面的片段模板将不使用
"pages" => $pages,
"data" => $data,
));
}
//in template,直接遍历$data,元素是Mymodel对象实例,用->访问属性即可
<table class="list">
<php foreach($data as $item){ >
<tr>
<td><php echo $item->id; ></td>
<td><php echo $item->name; ></td>
<td><php echo $item->age; ></td>
<td><php echo $item->gender; ></td>
</tr>
<php } >
</table>
<ul class="page">
<php
以上就是关于yii2 arrayhelper:getvalue怎么用全部的内容,包括:yii2 arrayhelper:getvalue怎么用、yii2怎么获取上一条用户提交数据的id、yii中如何创建一个表单接受数据,并存到数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)