Оптимизация AJAX - функция Laravel

Я немного борюсь с некоторыми формулами, идея состоит в том, чтобы иметь только одну формулу / функцию для всего, чтобы ее было легко поддерживать и она была надежной.

Проблема заключается в попытке объединить вызовы AJAX и функции laravel.

С одной стороны, у меня есть контроллер AJAX Datatables (вызовы должны быть в этом формате):

public function userData(Request $request)
    {
        $event = User::select(
            'users.*',
            DB::raw('IFNULL(b.balance,0) as balance'),
        )
        ->leftJoin(DB::raw('(SELECT seller_id, SUM(total) as balance FROM transactions WHERE concept IN ("TPV") AND status = "ok" GROUP by buyer_id)as b'), 'b.seller_id', '=', 'users.id')
        ->get();
        return $this->formatView($request, $event, 'user'); 
    }

Затем формула, которую я использую для остальной части сети, находится в функции внутри модели:

public function Balance($seller_id = false){
        return Transaction::emitted()
            ->where('event_id', $this->id)
            ->where('seller_id', $this->seller_id)
            ->whereIn('concept', ['TPV'])
            ->where('status', 'ok')
            ->sum('total'); 
    }

Возникает вопрос: знаете ли вы, как использовать одну формулу / функцию для всего?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
0
57
1

Ответы 1

Попробуйте это в своем методе контроллера

Выполняйте общие расчеты в отдельном методе и вызывайте его здесь. Затем измените формат ответа в следующих разделах

if ($request->expectsJson()){
   //send response to ajax here in json format. note that you should set ajax dataType:'json'
}
//send response for web here.

Другие вопросы по теме