Laravel - log () ожидает, что параметр 1 будет плавающим, задан массив - PullRequest
1 голос
/ 14 июня 2019

Я пытаюсь напечатать содержимое запроса json:

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $data = $request->json()->all();
        return response()->json($data);
    }

Сначала я попытался напечатать содержимое в файл с таким именем:

$data = $request->json()->all();
Info($data);

Он записывает это вжурнал:

[2019-06-14 10:43:51] local.ERROR: log() expects parameter 1 to be float, array given {"exception":"[object] (ErrorException(code: 0): log() expects parameter 1 to be float, array given at C:\\Users\\User 1\\Coding\\data-service\\app\\Http\\Controllers\\FileController.php:39)
[stacktrace]

Обновление:

Я использую отладку Log: из ответа Джеродева, но она все еще не работает.

public function store(Request $request)
{
   $data = $request->json()->all();
   //\Log::info($data);
   Log::debug($data);
   return response()->json($data);
}

Файл журнала:

local.ERROR: Class 'App\Http\Controllers\Log' not found {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Class 'App\\Http\\Controllers\\Log' not found at ...

Я включил следующий класс:

use App\Http\Controllers\Log;

Без регистрации ответ на запрос является пустым массивом:

[]

Как я могу отправить ответ и зарегистрировать его?

{
  test: 123,
  debug: [...] <- $data here
}

JSON-запрос:

{
    filename: "test1.jpeg"
}

enter image description here

Ответы [ 3 ]

4 голосов
/ 14 июня 2019

Вы на самом деле вызываете функцию PHP log(), которая вычисляет натуральный логарифм и действительно ожидает параметр типа float.

Чтобы писать сообщения журнала в Laravel, вам нужно использовать класс Log.

Log::debug($data);
2 голосов
/ 14 июня 2019

Вам нужно использовать \Log::info($data) вместо функции Log(), которая является функцией PHP, которая принимает значение с плавающей точкой в ​​качестве параметра.

Также вы можете получить $data, просто используя $request->all()

0 голосов
/ 14 июня 2019

Если вы хотите увидеть содержимое $data, рассмотрите возможность использования print_r($data); или var_dump($data). Последний напечатает симпатичную трассировку стека, если у вас включено расширение xdebug .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...