参数绑定

参数查找


rapphp 的控制器的方法支持自动参数绑定

  1. namespace app\index\controller;
  2. class UserController
  3. {
  4. public function save($id,$name,$sex)
  5. {
  6. return ['success'=>true];
  7. }
  8. }

save方法里的 $id,$name,$sex可以自动由GET 参数获取或POST 参数获取,如果 PUT的是 json 也可以自动获取

search 参数


很多人喜欢这样的url /index/12/3434/test/34这里路径上有三个是数字路径查找等于 去掉数字后的路径 /index/test

三个参数可以通过下面方式获取

  1. public function test(Request $request) {
  2. $search = $request -> search();//获取到search 参数
  3. $cat_id = $search[0];
  4. $test_id = $search[1];
  5. $id = $search[2];
  6. return ['success'=>true];
  7. }

当然也支持绑定

  1. //Search的是按出现的顺序取值
  2. public function test(Search $cat_id, Search $test_id, Search $id) {
  3. $cat_id = $cat_id -> value();
  4. $test_id = $test_id -> value();
  5. $id = $id -> value();;
  6. return ['success'=>true];
  7. }

绑定到模型

自动绑定的参数支持绑定到对象的对应属性上


  1. namespace app\index\model;
  2. class User extend extends Record
  3. {
  4. public $id;
  5. public $name;
  6. public $sex;
  7. }
  8. * * * * * * * * * * * * * * * * * * * * * * * * *
  9. namespace app\index\controller;
  10. class UserController
  11. {
  12. public function save(User $user)
  13. {
  14. $user->save();
  15. return ['success'=>true];
  16. }
  17. }

这里绑定到的对象 是Record(模型)的子类;也可以绑定到任意模型上

文件上传


通过File对象可以绑定上传的同名文件

  1. namespace app\index\controller;
  2. use rap\storage\File;
  3. class FileController
  4. {
  5. public function upload(File $file)
  6. {
  7. return $file;
  8. }
  9. }

更多文件上传的内容需要查看Storage 模块的文档

上一篇:控制器前置方法   下一篇:依赖注入