laravel质量赋值不插入布尔值

a64a0gku  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(364)

我正试着和拉威尔一起做弥撒作业。但是我有一个叫做“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']。

8wigbo56

8wigbo561#

您需要在模型中强制转换布尔值:

class YourModel extends Model
{

    protected $casts = [
        'hidden' => 'boolean',
    ];
}

这会告诉拉威尔你想要 hidden 要作为布尔值处理的列以及0和1等值将作为真/假返回,真/假保存为0/1。你可以在laravel doc mutators中阅读更多内容。

zbsbpyhn

zbsbpyhn2#

将数据库类型更改为bool。如果您想通过迁移实现这一点,可以执行:$table->boolean('hidden');

相关问题