• 参数绑定
    • 参数查找
    • search 参数
  • 绑定到模型
  • 文件上传

    参数绑定

    参数查找


    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 模块的文档

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