在我的 laravel 5.5 api 中,我有很多响应消息,例如“您成功完成了一些操作..”。
目前,我已将它们作为常量存储在使用它们的控制器中。我想将它们全部移动到一个位置,因此如果以后需要更改它们,我不必在每个控制器中寻找它们。
这个用例的最佳方法是什么?
在我的 laravel 5.5 api 中,我有很多响应消息,例如“您成功完成了一些操作..”。
目前,我已将它们作为常量存储在使用它们的控制器中。我想将它们全部移动到一个位置,因此如果以后需要更改它们,我不必在每个控制器中寻找它们。
这个用例的最佳方法是什么?
Laravel 本地化怎么样?然后将其用作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();
}
}
即使您只支持一种语言,您也可以使用翻译文件。
在您的控制器中,您将拥有以下内容:
$message = \Lang::get('directory/file.str1');
还有你的翻译文件:
return [
'str1' => 'You successfully completed some action.',
];
在resource/lang/en
目录中(换句话说,本地化,您可以像这样放置您的消息
apiMessage.php
return [
'success' => 'success message',
];
然后在你的控制器中你可以这样调用
public function somefunction(Request $request)
{
// your logic
return response()->json(__('apiMessages.success'));
}
此处en
文件夹表示您的本地语言(默认为英语,符号为 en)