Controller技巧

如我之前所述,模块核心的逻辑处理都放在Controller里,理论上你可以在Controller里面写任何函数,我这里就简单的说一下,通常你需要用到的一些小技巧:

1)获取get, post参数

如图所示,你只需要use 相关的类,然后依赖注入传参进你的函数,就可以直接使用getParsedBody()方法,获取到参数,这个是遵循的psr-7标准,所以相关更多的http方法请自行查阅。

2)跳转链接

HunterPHP自带一个全局跳转方法:redirect(), 所以你可以直接在你的controller里返回跳转方法即可:

return redirect('YOUR_PATH');

3 ) 文件上传和返回json数据

与上面类似,我给出一个实例,供参考:

use Psr\Http\Message\UploadedFileInterface;
use Zend\Diactoros\Response\JsonResponse;

  /**
   * user_upload.
   */
  public function user_upload(ServerRequest $request) {
    $uploadedFiles = $request->getUploadedFiles();
    if (!empty($uploadedFiles)) {
      $files = array();
      foreach ($uploadedFiles as $key => $value) {
        if ($value instanceof UploadedFileInterface) {
          $url = 'sites/upload/user_picture/'. $value->getClientFilename();
          if (!is_dir(dirname($url))){
            mkdir(dirname($url), 0755, true);
          }
          $value->moveTo($url);
          return new JsonResponse(array('filename' => base_path().$url, 'ext' => $value->getClientMediaType()));
        }
      }
    }

    return new JsonResponse(array('filename' => flase));
  }

更多小技巧,将会在以后增加!

HunterPHP - 用心与你沟通