我正在尝试创建自定义状态代码消息。但是,即时通讯是新的即时通讯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);
但不起作用
答案 0 :(得分:0)
我不确定您真正想做什么。如果要执行错误处理,则可以使用cakePHP错误处理API。无论如何,您可以通过以下方式执行此操作。
例如,这是您的控制人
class YourController extends AppController {
public $components = ['Functions'];
public function doStuff() {
$code = 200;
$message = $this->Functions->setStatusMsg($code);
//Execute your code
}
}
答案 1 :(得分:0)
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);