angular - 使用图片角度和 laravel 添加数据
问题描述
我有角度的函数 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']);
}
}
所以我的问题是当我像这张图片一样单独插入数据时。
如何合并这两个函数以在数据库中只有一个结果?
解决方案
我不知道你为什么要为此使用 2 个单独的函数,但问题是你在这两个函数 ( $p=new PostVehicule();
) 中都创建了新对象。如果您坚持编写 2 个函数,则应将最初创建的同一对象传递给第二个对象。$p = $this->add($request);
您在评论中提到的不返回 PostVehicule 对象,它返回一个 http 响应。你应该改变它:
if($p->save()){
return $p;
}
推荐阅读
- java - ARCore 录制 API 录制纵向模式使用时旋转 90 度的 CPU 图像(横向模式下方向正确)
- mysql - 在 phpmyadmin 上找不到 404 - nginx docker
- php - 为选择查询配对表中的字段
- r - 用他的最后一个字符重命名文件列表
- docker - 无法通过node/express连接postgresql;在 docker 容器中运行的 postgresql 和节点
- c++ - MPI & OpenMP:omp_get_max_threads 返回一半的真实线程容量
- javascript - 连续跟踪触摸屏
- c# - ReCaptcha 3 HTML Helper 在按钮中单击 ASP.NET MVC
- ios - iOS MapBox 适合相机到多个坐标 [纬度和经度] 或注释
- javascript - Javascript不将类添加到标签