@Artem0071
Безработный mr. Junior

Как вывести инфу по окончанию работы контроллера?

Делаю АПИ для фронта

Создал трейт чтобы для всех выводов был один и тот же формат:
namespace App\Traits;


trait Output
{
    protected $success = true;
    protected $statusCode = 200;
    protected $errors = [];
    protected $data = [];

    public function setData(array $data = [])
    {
        $this->data = array_merge($this->data, $data);

        return $this;
    }

    ...

    public function renderOutput()
    {
        return response()->json([
            'success' => $this->success,
            'code' => $this->statusCode,
            'errors' => $this->errors,
            'data' => $this->data
        ], $this->statusCode);
    }


Подключил его в глобальном контроллере:
class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests, Output;
}


Теперь я могу в любом контроллере делать что то вроде этого:
$this->setData(['user' => $user]);

Но в конце всех контроллеров у меня только одна строка:
return $this->renderOutput();

Можно ли что то прописать в глобальном контроллере чтобы избавиться от этой строчки в остальных контроллерах?

пс, понимаю что ничего сложного в написании одной строки нет, но мне все же интересно есть ли решение для этой задачи
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
dark_tke
@dark_tke
Помогли? Отметь решением!
Как пример, что сразу в голову приходит, можете использовать __destruct()
Он всегда выполняется в конце контроллера, и может выводить нужную информацию
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы