Как узнать значение переменной в контроллере (не основной), который принимает и обрабатывывает ajax url адрес?

Рейтинг: 0Ответов: 1Опубликовано: 26.03.2023

Пробовал dd($like); не помогает.
Понимаю, что этот контроллер работает только в момент клика

public function like($id) 
{
    $userid = Auth::id();
    $check = DB::table('likes')->where('user_id', $userid)
        ->where('blogpost_id', $id)->first();
    $data = array('user_id' => $userid, 'blogpost_id' => $id);
    if (Auth::check()) {
        if ($check){
            return Response::json(['error' => 'Already Liked Before!']);
        } else {
            DB::table('likes')->insert($data);
            $like = DB::table('blogposts')->where('id', $id)->increment('like');
            $totals = DB::table('blogposts')->where('id', $id)->first();
            return Response::json(['success' => 'Thanks for Your Like!', 'totals' => $totals] );
        }
    } else {
        return Response::json(['error' => 'First, LogIn Your Account!']);
    }
}

Ответы

▲ 0Принят

dd() не работает в API роутах. Для дебага, наподобии dd, Вы можете использовать mlanin/laravel-api-debugger. Там свой метод lad(), который вернет отладочную информацию вместе с json-ответом.

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

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

...
$like = DB::table('blogposts')->where('id', $id)->increment('like');
$totals = DB::table('blogposts')->where('id', $id)->first();
return Response::json([
    'success' => 'Thanks for Your Like!',
    'totals' => $totals,
    'like' => $like
]);
...