我试图提交FORMDATA JavaScript对象线槽Axios公司库,我不能让它工作,因为有一个布尔字段(IS_ACTIVE)谁必须去我的API为布尔并且FormData对象将其转换为字符串!发送布尔与FORMDATA使用Javascript - Vuejs + Laravel应用
我试图让它没有FormData,然后它就完美了!
任何机构都知道使其工作的最佳方式?事实上,我在Laravel要求修复这个领域方面做得非常糟糕......我认为这不是最好的主意,但它现在可行!
有人有很好的解决办法吗?
还有就是我目前的工作代码,但我想使它变得更好!
我的控制器和我的要求:
PS:我曾经提出,如果在$规则功能来修复布尔问题...如果我让他去为字符串我有问题,我的数据库,在那里该字段必须是布尔值,我也不得不删除该字段我的布尔验证
class PostRequest extends FormRequest
{
public function rules()
{
if (in_array($this->get('active'), ['true', 'false'])) {
$this->offsetSet('active', $this->get('active') == 'true');
}
$rules = [
'title' => 'required|string',
'slug' => 'required|alpha_dash|unique:posts,slug',
'photo' => 'required|image',
'publish_date' => 'required|date_format:d/m/Y',
'summary' => 'required',
'content' => 'required',
'author_id' => 'required|exists:authors,id',
'category_id' => 'required|exists:categories,id,flag,posts',
// 'active' => 'boolean',
];
return $rules;
}
}
class PostsController {
public function store(PostRequest $request)
{
try {
$model = new Post($request->all());
$model = $model->save();
} catch (\Exception $e) {
return response()->json($e->getMessage(), 422);
}
return $model;
}
}
现在有我的javascript代码
PS:我与服务工作,所以我createPost触发我的爱可信的客户谁发出请求
let data = new FormData()
let record = _.cloneDeep(this.record)
for (var key in record) {
if (record[key] === 'true' || record[key] === 'false')
data.append(key, record[key] === 'true')
else
data.append(key, record[key])
}
return _.isNil(this.record.id) ? createPost(data) : updatePost(data.id, data)