我将一些boolean
字段与POST
请求一起发送到Laravel控制器。但是,除了booleans
之外,请求中的所有数据都被保存。
型号填充物:
protected $fillable = [
'name',
'code',
'governorate',
'point',
'overnight',
'isResort',
'family',
'youth',
'status',
'description',
'user_id',
'price_currency',
'map',
'checkoutMessage',
'checkoutYoutubeVideo',
'max_person_count',
'more_person_price',
'age_limit',
'productYoutubeVideo',
'resortProductCount',
];
字符串
控制器
public function store(Request $request)
{
try{
$data = $request->all();
$data['user_id'] = auth('user-api')->user()->id;
$gev_id = Str::before($request->governorate_id, ',');
$product = RentProduct::create($data);
$product->update([
'code' => $gev_id.rand((int)0, (int)pow(2, 256)).$product->id,
]);
return $this->returnData("product", RentProduct::where('id', $product->id)->with('photos')->get());
}catch(\Throwable $th){
return $this->returnError($th->getCode() , $th->getMessage());
}
}
型
奇怪的问题是,当我从store
方法中删除并转储创建的产品时,boolean
以正确的方式出现,但它被保存时没有boolean
s。
Postman 请求
2条答案
按热度按时间0aydgbwb1#
不要将'true'作为字符串发送,将1(true)或0(false)作为int发送。顺便说一下,不要忘记将列类型更改为tinyint(1)数据类型。
jm81lzqq2#
刚刚有了这个,奇怪的是
$product->my_boolean_value = "true"
不工作,但$product->setAttribute("my_boolean_value", "false")
工作时,数据库列被定义为PostgreSQL上的布尔值。我的模型定义为:字符串