【发布时间】:2018-06-14 00:19:46
【问题描述】:
我正在向 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 控制器发布操作方法的后端,我试图检查 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', '(.*)');
【问题讨论】:
-
顺便说一句,我没有对中间件中的数据进行任何特定处理。
-
我在过去的项目中传递了布尔值,你能告诉我你的路线吗?在到达您的控制器之前必须发生一些事情
-
编辑了我的问题以添加路线。但路线不是问题。
-
我通过使用 true ==> 'true' 和 false ==> 'false' 的文本值的变通方法使其工作。但我仍然不确定为什么我不能简单地将布尔值 true 或 false 发布到 laravel 控制器操作?
标签: laravel axios laravel-5.6 php-7.2