Методы пост-действий контроллера Laravel 5.6 обрезают логическое значение

Я делаю сообщение AJAX для контроллера Laravel, как показано ниже.

<script>
    let data = {
       a: true,
       b: false
    }

    this.axios.post(this.url, data)
      .then (result => console.info(result) )
      .catch (result => console.info(result) )
</script>

На стороне бэкэнда в методе пост-действия контроллера Laravel 5.6 я пытаюсь проверить, какие значения отправляются вызовом AJAX из внешнего интерфейса. И затем я записываю его в файл журнала laravel.

<?php

   public function myPostHandler(Request $request) {
         $data = $request->all();
        \Log::info("Posted data = " . print_r($data, true));
   }
?>

В файле laravel.log ... он показывает, что значения пусты, как показано ниже -

[a] =>
[b] => 

Итак, мой вопрос: как мне отправить логические данные контроллеру, чтобы они не потерялись? А также хотелось бы понять, почему Laravel так себя ведет и почему мои логические значения обрезаются? Это что-то вызвано промежуточным программным обеспечением?

PS: Ниже приведены мои маршруты, у которых нет проблем:

 Route::get('something/{catchall}', [
            'uses' => 'myController@index'
        ])->where('catchall', '(.*)');

 Route::post('something/{catchall}', [
            'uses' => 'myController@update'
        ])->where('catchall', '(.*)');

Я не занимаюсь какой-либо конкретной обработкой данных в промежуточном программном обеспечении BTW.

Andy 14.06.2018 02:22

В моих прошлых проектах я передавал логические значения, вы можете показать мне свой маршрут? должно быть что-то, что происходит до того, как добраться до вашего контроллера

Ikong 14.06.2018 02:54

Отредактировал свой вопрос, чтобы добавить маршруты. Но маршруты не проблема.

Andy 14.06.2018 04:07

Я заставил это работать, используя обходной путь использования текстовых значений для true ==> 'true' и false ==> 'false'. Но я все еще не уверен, почему я не могу просто отправить логическое значение true или false в действие контроллера laravel?

Andy 14.06.2018 04:09

Что параметры запроса отображаются на вкладке сети в chrome devtools?

Derek Pollard 14.06.2018 04:34

Взгляните на https://stackoverflow.com/a/43471980/3003285

Aryan 14.06.2018 04:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
6
147
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В методах myPostHandler полученные данные в порядке. Я предполагаю \ Log :: info записать логический тип с приведением к строке / Попробуйте преобразовать данные перед журналом

    $data = $request->all();
    foreach($data as $key => $elem){
        if (is_bool($elem)) {
            $data[$key] = ($elem) ? 'true' : 'false';
        }
    }
    \Log::info("Posted data = " . print_r($data, true));

Я проверю это сегодня. Но это кажется правильным ответом.

Andy 14.06.2018 20:14

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