Laravel 5.6 控制器 post 操作方法截断布尔值
Laravel 5.6 controller post action methods truncates boolean value
我正在制作一个 AJAX post 到 Laravel 的控制器,如下所示。
<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 操作方法的后端,我试图检查前端的 AJAX 调用 post 编辑了哪些值。然后我将它记录到 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', '(.*)');
在方法"myPostHandler"中接收到的数据是可以的。
我猜 \Log::info 将布尔类型写入字符串/
尝试在 log
之前转换数据
$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));
我正在制作一个 AJAX post 到 Laravel 的控制器,如下所示。
<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 操作方法的后端,我试图检查前端的 AJAX 调用 post 编辑了哪些值。然后我将它记录到 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', '(.*)');
在方法"myPostHandler"中接收到的数据是可以的。 我猜 \Log::info 将布尔类型写入字符串/ 尝试在 log
之前转换数据 $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));