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