2017-09-14 67 views
2

在我的laravel 5.5 api中,我有很多回复消息,如 “您成功完成了一些操作..”。在laravel api中放置响应消息的位置?

目前我已经将它们作为常量存储在控制器中,因此它们使用了 。我想将它们全部移到一个位置,所以如果我稍后需要更改它们,我不必在每个控制器中搜索它们。

这个用例的最佳方法是什么?

回答

1

即使您只支持一种语言,也可以使用翻译文件。

在你的控制,你会碰到这样的:

$message = \Lang::get('directory/file.str1'); 

而且你的翻译文件:

return [ 
    'str1' => 'You successfully completed some action.', 
]; 
1

在你的用例中,我会让静态函数以相同的方式调用响应。

class ResponseMessage 
{ 
    public static function succesfulResponse() 
    { 
     return response('successfull', 200); 
    } 

    public static function failedResponse() 
    { 
     return response('fail', 400); 
    } 
} 

使用案例:

... 

return ResponseMessage::succesfulResponse(); 

另一种方法是取父控制器,它通常只是在你的控制器文件夹命名为Controller,你从延伸。

class controller 
{ 
    public function succesfulResponse() 
    { 
     return response('successfull', 200); 
    } 
} 

现在您不在静态上下文中,但是如果您从中进行扩展,则可以使用这些函数。

class yourController extends Controller 
{ 
    public function get($id) { 
     ... 

     return $this->succesfulResponse(); 
    } 
} 
0

resource/lang/en目录(换句话说Localization你可以把你的信息是这样

ApiMessage.php

return [ 

    'success' => 'success message', 

]; 

然后在你的控制器,你可以这样调用

public function somefunction(Request $request) 
    { 
     // your logic 
     return response()->json(__('apiMessages.success')); 
    } 

这里en文件夹表示您的本地语言(默认为英文,表示为en)