![](/img/trans.png)
[英]Laravel Eloquent $model->save() not saving but no error
[英]laravel eloquent model casts on save?
https://laravel.com/docs/5.4/eloquent-mutators#attribute-casting例如
protected $casts = [ 'price' => 'integer', ];
現在,將在檢索值時進行強制轉換。 保存時,我實際上不確定$book->price = "20"
會做什么,例如,很可能會保存20。
那是我的猜測,對嗎?
$book->someboolean
與$casts =[ 'someboolean' -> 'boolean'];
$book->someboolean = 'false'; $book->save();
$book->someboolean = '0'; $book->save();
$book->someboolean = 0; $book->save();
$book->someboolean = null; $book->save();
它會存儲什么?
$casts
在保存和更新方法上不起作用。 當您從模型中獲得某些屬性時,將調用__get()
, toArray()
或toJson()
。
對於MySQL:如果嘗試保存“ 20”,則數據庫可以根據列類型轉換值:如果是整數,則將保存20,如果布爾值,則為true。
布爾型,布爾型:這些類型是TINYINT(1)的同義詞。 零值被認為是錯誤的。 非零值被認為是正確的。
雄辯地說,它使用流利的方法構成了SQL查詢。 $casts
屬性僅在檢索時有效。 對於插入或更新,您應該檢查數據庫引擎及其轉換方式。
如果您想雄辯地使用Laravel強制轉換。 您可以添加增幅器。
public function setSomebooleanAttribute($value)
{
$this->attributes['someboolean'] = boolval($value);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.