在我的laravel 5.5 api中,我有很多回复消息,如 “您成功完成了一些操作..”。在laravel api中放置响应消息的位置?
目前我已经将它们作为常量存储在控制器中,因此它们使用了 。我想将它们全部移到一个位置,所以如果我稍后需要更改它们,我不必在每个控制器中搜索它们。
这个用例的最佳方法是什么?
在我的laravel 5.5 api中,我有很多回复消息,如 “您成功完成了一些操作..”。在laravel api中放置响应消息的位置?
目前我已经将它们作为常量存储在控制器中,因此它们使用了 。我想将它们全部移到一个位置,所以如果我稍后需要更改它们,我不必在每个控制器中搜索它们。
这个用例的最佳方法是什么?
什么Laravel localization?然后用它作为trans('success-message-key-here')
即使您只支持一种语言,也可以使用翻译文件。
在你的控制,你会碰到这样的:
$message = \Lang::get('directory/file.str1');
而且你的翻译文件:
return [
'str1' => 'You successfully completed some action.',
];
在你的用例中,我会让静态函数以相同的方式调用响应。
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)