【发布时间】:2021-09-14 19:44:44
【问题描述】:
我有角度函数 insertData :
insertData(){
this.service.insertAnnonce(this.annonce).subscribe(res=>{
console.log(res);
})
效果很好
这是我的模型:
export interface IPost {
id :number;
user_id :string ;
picture :string;
title :string;
description :string;
price :number;
category_id :number ;
Modele :string;
BoiteDeVitesse :string;
AnneeModele :number;
Marque :string;
YearOfRegistration:number ;
TypePost :string;
PuissanceFiscale:string;
PuissanceDIN :string;
Kilometrage :number;
NombreDePortes :number;
NombreDePlaces :number;
carburant :string;
Permis :boolean;
data: IPost[];
}
这是图片的myFunction:
onSubmitform(f: NgForm) {
var myFormData = new FormData();
const headers = new HttpHeaders();
headers.append('Content-Type', 'multipart/form-data');
headers.append('Accept', 'application/json');
myFormData.append('image', this.filedata);
/* Image Post Request */
this.service.insertAnnonce(this.annonce).subscribe(res=>{
console.log(res);
})
this.http.post('http://127.0.0.1:8000/api/AddImage/', myFormData, {
headers: headers
}).subscribe(data => {
});
}
而且效果也很好
这是控制器背面:
public function add(Request $request){
$p=new PostVehicule();
$p->title= $request->title;
$p->description= $request->description;
$p->price= $request->price;
$p->TypePost= $request->TypePost;
$p->category= $request->category;
$p->Modele= $request->Modele;
$p->Marque= $request->Marque;
$p->BoiteDeVitesse=$request->BoiteDeVitesse;
$p->AnneeModele=$request->AnneeModele;
$p->PuissanceFiscale=$request->PuissanceFiscale;
$p->Kilometrage=$request->Kilometrage;
$p->NombreDePortes=$request->NombreDePortes;
$p->NombreDePlaces=$request->NombreDePlaces;
$p->carburant=$request->carburant;
/* if ($request->hasFile('image')) {
$image_file = $request->file('image');
$img_extension = $image_file->getClientOriginalExtension();
$img_filename = time() . '.' . $img_extension;
$path ='C:/ionic/data/';
$image_file->move($path, $img_filename);
$p->image = $img_filename;
}*/
if($p->save()){
//return new PostResource($post);
return response()->json(['message'=>'post added successfult']);
}
}
public function uploadimage(Request $request) {
$p=new PostVehicule();
if ($request->hasFile('image')) {
$image_file = $request->file('image');
$img_extension = $image_file->getClientOriginalExtension();
$img_filename = time() . '.' . $img_extension;
$path ='C:/ionic/data/';
$image_file->move($path, $img_filename);
$p->image = $img_filename;
}
if($p->save()){
//return new PostResource($post);
return response()->json(['message'=>'Image added successfult']);
}
}
所以我的问题是当我像这张图片一样单独插入数据时。
如何合并这两个函数以使数据库中只有一个结果?
【问题讨论】:
-
我可以看看你后端存储表单数据的代码吗?
-
@XeonNetwork 是的,我更新了我的问题并添加了我的后端
-
如果您以顺序方式分别调用这些方法,您可以将生成模型的 id 传递给第二个函数,然后更新现有模型。
-
@MohammadMirsafaei 我这样调用第二个函数中的第一个函数 ` $p = $this->add($request); ` 但出现新错误“BadMethodCallException: Method Illuminate\Http\JsonResponse::save 不存在。
-
看起来您正在订阅观察者,而没有跟踪他们以便稍后取消订阅。请让您致电
pipe(first())或取消订阅您的订阅。这将防止任何内存泄漏。