Eloquent和mysql强制转换为boolean无法正常工作

时间:2017-03-06 15:10:28

标签: mysql laravel eloquent laravel-eloquent

class MyModel extends Model
{

    public $table = 'mymodel';

    const CREATED_AT = 'created_at';
    const UPDATED_AT = 'updated_at';



    public $fillable = [
        'share_info',
    ];


    protected $casts = [
        'share_info' => 'boolean',
    ];

模型:

  $mm->share_info = true;

结果列,是mysql中的boolean tinyint。

结果在DB中为0而不是1。

为什么?

,

按预期工作

1 个答案:

答案 0 :(得分:2)

你也可以通过laravel magic方法来设置/获取属性:

public function setShareInfoAttribute($value){
    $this->attributes['share_info'] = (int) $value == 'yes';
}

public function getShareInfoAttribute(){
    return $this->attributes['share_info'] ? 'yes' : 'no';
}