https://laravel.com/docs/5.4/eloquent-mutators#attribute-casting例如laravel雄辯模式保存?
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();
會是什麼店?
試一試。答案甚至可能因數據庫引擎而異。 – ceejayoz
@ceejayoz這意味着雄辯留下我們獨自在那一個?因爲改變數據庫不應該改變代碼的運行方式。但正如你所說,似乎正是這樣做的。從根本上改變它。 – Toskan
那麼,作爲一個例子,'$ book-> someboolean = null;'如果該字段不爲空,它將在Postgres中出錯,但它在MySQL中將正常工作(插入false)。主要是'$ casts'('json'強制轉換會影響它的保存方式,IIRC)在讀取時運行,而不是寫入。 – ceejayoz