我正在向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', '(.*)');
答案 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&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&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>