在laravel api中放置响应消息的位置?

时间:2017-09-14 11:25:25

标签: laravel laravel-5 laravel-5.5

在我的laravel 5.5 api中,我有很多响应消息 "您成功完成了某些操作。"。

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

此用例的最佳方法是什么?

4 个答案:

答案 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)