laravel api 中的响应消息放在哪里?
Where to put response messages in laravel api?
在我的 laravel 5.5 api 中,我有很多回复消息,例如
"You successfully completed some action..".
目前我将它们作为常量存储在控制器中
被使用。我想将它们全部移动到一个位置,这样如果我以后需要更改它们,我就不必在每个控制器中寻找它们。
这个用例的最佳方法是什么?
即使您只支持一种语言,也可以使用翻译文件。
在你的控制器中,你会有这样的东西:
$message = \Lang::get('directory/file.str1');
还有你的翻译文件:
return [
'str1' => 'You successfully completed some action.',
];
Laravel localization呢?然后将其用作 trans('success-message-key-here')
在您的用例中,我会创建静态函数以相同的方式调用响应。
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();
}
}
在 resource/lang/en
目录中(换句话说 Localization 你可以这样放置你的信息
ApiMessage.php
return [
'success' => 'success message',
];
然后在你的控制器中你可以这样调用
public function somefunction(Request $request)
{
// your logic
return response()->json(__('apiMessages.success'));
}
此处 en
文件夹表示您的本地语言(默认为英语,符号为 en)
在我的 laravel 5.5 api 中,我有很多回复消息,例如 "You successfully completed some action..".
目前我将它们作为常量存储在控制器中 被使用。我想将它们全部移动到一个位置,这样如果我以后需要更改它们,我就不必在每个控制器中寻找它们。
这个用例的最佳方法是什么?
即使您只支持一种语言,也可以使用翻译文件。
在你的控制器中,你会有这样的东西:
$message = \Lang::get('directory/file.str1');
还有你的翻译文件:
return [
'str1' => 'You successfully completed some action.',
];
Laravel localization呢?然后将其用作 trans('success-message-key-here')
在您的用例中,我会创建静态函数以相同的方式调用响应。
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();
}
}
在 resource/lang/en
目录中(换句话说 Localization 你可以这样放置你的信息
ApiMessage.php
return [
'success' => 'success message',
];
然后在你的控制器中你可以这样调用
public function somefunction(Request $request)
{
// your logic
return response()->json(__('apiMessages.success'));
}
此处 en
文件夹表示您的本地语言(默认为英语,符号为 en)