【问题标题】:Creating a customized message status code创建自定义消息状态码
【发布时间】:2019-08-26 18:58:21
【问题描述】:

我正在尝试创建自定义状态代码消息。但我是新的即时通讯 php 和 cakephp。所以我需要一些帮助。

我的 FunctionsComponent 我是这样做的:

公共函数 setStatusMsg($code, $method) {

    switch ($code) {

        case 200: 
        $msg = 'Some msg'; 
        break;

        case 201: 
        $msg = 'Some msg'; 
        break;

        case 202: 
        $msg = 'Some msg'; 
        break;

        case 400: 
        $msg = 'Some msg'; 
        break;

        case 401: 
        $msg = 'Some msg'; 
        break;

        case 403: 
        $msg = 'Forbidden'; 
        break;

        case 404:
        $msg = 'Some msg'; 
        break;

        case 500: 
        $msg = 'Some msg'; 
        break;
    }
    return $code;
} 

如何在我的控制器中调用函数组件?

我试过了:$message = $this->Functions->setStatusMsg($code);

但不工作

【问题讨论】:

标签: php cakephp http-status-code-403


【解决方案1】:

我不确定你真正想要做什么。如果你想做错误处理,你可以使用 cakePHP 错误处理 API。无论如何,您可以通过以下方式执行此操作。

例如,这是你的控制器

class YourController extends AppController {
     public $components = ['Functions'];

     public function doStuff() {
        $code = 200;
        $message = $this->Functions->setStatusMsg($code);
        //Execute your code
     }

}

【讨论】:

  • 感谢您的帮助。但我明白了。我试图以自定义方式处理所有端点的错误消息。
【解决方案2】:
This is my solution:
 Im my FunctionsComponent:

      public function getStatusMessage($code, $method) 
     {
         switch (true) {
             case $method == 'DELETE' && $code == 200:
                 $msg = 'Some message.';
                 break;
             case $method == 'DELETE' && $code == 403:
                 $msg = 'Some message.';
                 break;
             case $method == 'DELETE' && $code == 500:
                 $msg = 'Some message.';
                 break;
             case $method == 'DELETE':
                 $msg = 'Some message.';
                 break;
             case $method == 'POST' && $code == 200:
                 $msg = 'Some message.';
                 break;
             case $method == 'POST' && $code == 403:
                 $msg = 'Some message.';
                 break;
             case $method == 'POST' && $code == 500:
                 $msg = 'Some message.';
                 break;
             case $method == 'POST':
                 $msg = 'Some message.';
                 break;
             case $method == 'PUT' && $code == 200:
                 $msg = 'Some message.';
                 break;
             case $method == 'PUT' && $code == 403:
                 $msg = 'Some message.';
                 break;
             case $method =='PUT' && $code == 500:
                 $msg = 'Some message.';
                 break;
             case $method == 'PUT' && $code == 404:
                 $msg = 'Some message.';
                 break;
             case $method == 'GET' && $code == 200:
                 $msg = 'Some message.';
                 break;
             case $method == 'GET' && $code == 403:
                 $msg = 'Some message.';
                 break;
             case $method == 'GET' && $code == 500:
                 $msg = 'Some message.';
                 break;
             case $method =='GET':
                 $msg = 'Some message.';
                 break;
             default:
                 $msg = 'Some message.';
                 break;
         }
         return $msg;
     }

Im my controller:

 public function index(){
  $method = $this->request->Method();
    //my code..
  if(sucess){
    $this->setResponse($this->response->withStatus(200));
    $message = $this->Functions->getStatusMessage(200, $method);
 } else {
  $this->setResponse($this->response->withStatus(403));
  $message = $this->Functions->getStatusMessage(403, $method);     

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多