Laravel 5.6控制器post动作方法截断布尔值

时间:2018-06-14 00:19:47

标签: laravel axios laravel-5.6 php-7.2

我正在向Laravel控制器发布一个AJAX帖子,如下所示。

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

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

在Laravel 5.6控制器post action方法的后端,我试图检查来自前端的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', '(.*)');

1 个答案:

答案 0 :(得分:1)

在方法&#34; myPostHandler&#34;收到的数据还可以。 我猜\ Log :: info写boolean类型与强制转换为字符串/ 尝试在日志之前转换数据

<persistence-unit name="TestMySqlHibernate" transaction-type="RESOURCE_LOCAL">
    <properties>
        <property name="javax.persistence.jdbc.driver"
            value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url"
            value="jdbc:mysql://localhost:3306/testalan?useUnicode=true&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC"/>
        <property name="javax.persistence.jdbc.user" value="alan" />
        <property name="javax.persistence.jdbc.password"
            value="password" />

        <property name="hibernate.dialect"
            value="org.hibernate.dialect.MySQLDialect" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.hbm2ddl.auto" value="create" />
    </properties>
</persistence-unit>