我正试着和拉威尔一起做弥撒作业。但是我有一个叫做“hidden”的字段,在数据库中是一个tinyint。从我的前端我得到一个布尔型的背面。当我mass assign with'hidden'=>true时,db中的字段仍然是0。当我把它转换回一个整数('hidden'=>1)时,这个字段被保存为1。
我确实在我的$filleble中添加了“hidden”。
p、 当我尝试用mysql用布尔值将它插入db directy时,它是有效的。
有人知道怎么了吗?
编辑:这是我的代码,
公共函数存储(request$request){
类组扩展模型{使用通知;
const CREATED_AT = 'created';
const UPDATED_AT = 'updated';
protected $table = 'groups';
protected $casts = [
'hidden' => 'boolean',
];
protected $fillable = [
'hidden',
// etc
];
}
public function store(Request $request) {
$post = $request->all();
$group_id = Group::create($post);
}
前端是vue项目。所以laravel是我的api。我确实得到了一个真正的$post['hidden']。
2条答案
按热度按时间8wigbo561#
您需要在模型中强制转换布尔值:
这会告诉拉威尔你想要
hidden
要作为布尔值处理的列以及0和1等值将作为真/假返回,真/假保存为0/1。你可以在laravel doc mutators中阅读更多内容。zbsbpyhn2#
将数据库类型更改为bool。如果您想通过迁移实现这一点,可以执行:$table->boolean('hidden');