这是我第一次尝试使用 Maatwebsite/Laravel-Excel
使用 Laravel 8 打包。
我正在尝试将数据从 excel 文件导入数据库表。
我的 table :
但我有一些困难或疑问:
id_type_facturation
我的数据表中的列,所以我应该存储 id 而不是像“Conrat”这样的值。date_of_birth
,我应该计算年龄,如果年龄小于 18 我应该将 parent 的信息存储在另一个表中,如果年龄大于 18 它不应该将信息存储在表 parents 中。我完成了所有过程,但我使用以下代码从表单中获取数据:
public function store(Request $request)
{
$representants = new Representant();
$castings = new Casting();
$id_filiale= Auth::user()->id_filiale;
$datee = $request['date_naissance'];
$time = strtotime($datee);
$date = date('Y-m-d',$time);
$age = Carbon::parse($date)->diff(Carbon::now())->y;
$rules = array(
'nom' => 'required',
'prenom' => 'required',
'cine' => 'required|unique:castings',
'date_naissance' => 'required',
'lieu_naissance' => 'required',
'id_type_facturation' => 'required',
'artiste' => 'required',
'fonction' => 'required',
'id_type_casting' => 'required',
'tel1' => 'required',
'tel2' => 'required',
'email' => 'required',
'qualification' => 'required',
'adresse' => 'required',
'ville' => 'required',
'pays' => 'required'
);
$rules_message = array(
'nom.required' => 'Le nom est requis',
'prenom.required' => 'Le prénom est requis',
'cine.required' => 'Le CINE est requis',
'cine.unique' => 'Le CINE a déjà été pris',
'date_naissance.required' => 'La date de naissance est requise',
'lieu_naissance.required' => 'Le lieu de naissance est requis',
'id_type_facturation.required' => 'Le type de facturation est requis',
'artiste.required' => 'Est ce que c\'est un artiste ? ',
'fonction.required' => 'La fonction est requise',
'id_type_casting.required' => 'Le type de facturation est requis',
'tel1.required' => 'Le numéro de téléphone 1 est requis',
'tel2.required' => 'Le numéro de téléphone 2 est requis',
'email.required' => 'L\'adresse email est requise',
'qualification.required' => 'La qualification est requise',
'adresse.required' => 'L\'adresse est requise',
'ville.required' => 'La ville est requise',
'pays.required' => 'La pays est requis',
);
$error = Validator::make($request->all(), $rules,$rules_message);
if($error->fails())
{
return response()->json(['errors' => $error->errors()->all()]);
}
if ($age < 18) {
$image = $request->file('photo');
$new_name = rand() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('castingimages'), $new_name);
$representants->nom_prenom = $request['nom_prenom'];
$representants->cine = $request['cine_representant'];
$representants->lien_casting = $request['lien_casting'];
$representants->save();
$castings->nom = $request['nom'];
$castings->prenom = $request['prenom'];
$castings->cine = $request['cine'];
$castings->date_naissance = $date ;
$castings->lieu_naissance = $request['lieu_naissance'];
$castings->mineur = 1;
$castings->id_representant = $representants->id;
$castings->id_type_facturation = $request['id_type_facturation'];
$castings->artiste = $request['artiste'];
$castings->fonction = $request['fonction'];
$castings->id_type_casting = $request['id_type_casting'];
$castings->tel1 = $request['tel1'];
$castings->tel2 = $request['tel2'];
$castings->email = $request['email'];
$castings->photo = $new_name;
$castings->qualification = $request['qualification'];
$castings->adresse = $request['adresse'];
$castings->ville = $request['ville'];
$castings->pays = $request['pays'];
$castings->id_filiale = $id_filiale;
$castings->save();
return response()->json(['success' => 'Casting/Influenceur ajouté avec succès.']);
}else
{
$image = $request->file('photo');
$new_name = rand() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('castingimages'), $new_name);
$castings->nom = $request['nom'];
$castings->prenom = $request['prenom'];
$castings->cine = $request['cine'];
$castings->date_naissance = $date ;
$castings->lieu_naissance = $request['lieu_naissance'];
$castings->mineur = 0;
$castings->id_type_facturation = $request['id_type_facturation'];
$castings->artiste = $request['artiste'];
$castings->fonction = $request['fonction'];
$castings->id_type_casting = $request['id_type_casting'];
$castings->tel1 = $request['tel1'];
$castings->tel2 = $request['tel2'];
$castings->email = $request['email'];
$castings->photo = $new_name;
$castings->qualification = $request['qualification'];
$castings->adresse = $request['adresse'];
$castings->ville = $request['ville'];
$castings->pays = $request['pays'];
$castings->id_filiale = $id_filiale;
$castings->save();
return response()->json(['success' => 'Casting/Influenceur ajouté avec succès.']);
}
}
除了从 excel 文件中获取数据之外,我还能做同样的事情吗?如果您对此有任何想法,或者如果您知道我是否可以用这个包做这些事情,请告诉我。
最佳答案
如果您只有值但没有 ID,但该值在您的数据库表中是唯一的,您可以这样做:
$model = new YourModel;
$model->some_id = OtherModel::where('unique_column', $request->input('some_value'))->sole()->id;
$model->save();
关于php - 在 Laravel 8 中使用 maatwebsite laravel excel 导入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68631890/