在我的laravel 5.5 api中,我有很多响应消息 "您成功完成了某些操作。"。
此刻我将它们作为常量存储在控制器中 使用。我想将它们全部移动到一个位置,所以如果我以后需要更改它们,我不必在每个控制器中搜索它们。
此用例的最佳方法是什么?
答案 0 :(得分:2)
Laravel localization怎么样?然后将其用作trans('success-message-key-here')
答案 1 :(得分:1)
即使您只支持一种语言,也可以使用翻译文件。
在你的控制器中,你会有类似的东西:
$message = \Lang::get('directory/file.str1');
您的翻译文件:
return [
'str1' => 'You successfully completed some action.',
];
答案 2 :(得分: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();
}
}
答案 3 :(得分: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)