Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel雄辩更新tinyint(布尔值)_Php_Laravel_Laravel 5_Eloquent - Fatal编程技术网

Php Laravel雄辩更新tinyint(布尔值)

Php Laravel雄辩更新tinyint(布尔值),php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我在更新雄辩的模型时遇到了一个奇怪的问题,我使用了一个复选框(1 | |未定义),并使用 $input = $request->all(); $service->update($input); 我特意勾选了复选框 $input['active'] = ($request->has('active') && $input['active']) ? 1 : 0 但它仍然不会影响数据库 当我转储请求时我可以看到处于活动状态:1或0,但这一切都不会改变update(

我在更新雄辩的模型时遇到了一个奇怪的问题,我使用了一个复选框(1 | |未定义),并使用

$input = $request->all();
$service->update($input);
我特意勾选了复选框

$input['active'] = ($request->has('active') && $input['active']) ? 1 : 0
但它仍然不会影响数据库

当我转储
请求时
我可以看到
处于活动状态:
1
0
,但这一切都不会改变
update()上的数据库

我做了一个快速测试,并使用

$service->active = ($request->has('active') && $input['active']) ? 1 : 0 ;
$service->save();
完成了任务。但是为什么
update()
没有更新此字段?

您是否尝试过:

$input = $input->except(['active']);

$input['active'] = ($request->has('active') && $input['active']) ? 1 : 0;

$service->update($input);

希望这有帮助。

如果
$request->active
返回true,但仍无法保存在DB中,我打赌您忘记将
active
添加到
$filleble
数组:

protected $fillable = ['something', 'something_else', 'active'];

只需
$input['active']=$request->has('active')如何?1:0
当您
dd($request->input('active'))
时,它是否返回
true
?另外,当您尝试此操作时,是否会出现错误,或者它是否工作,只是不更新该字段?就是这样。。我想我把它们都加上了。谢谢!为我工作,但你能解释为什么吗happen@VinayKaithwas您无法轻松与$fillable数组中不存在的列进行交互。它也可以工作,但在处理Laravel中的布尔值时,它更倾向于使用
true
false
(而不是1和0)