gpt4 book ai didi

php - 在 Laravel 8 中使用 maatwebsite laravel excel 导入数据

转载 作者:行者123 更新时间:2023-12-04 20:49:12 33 4
gpt4 key购买 nike

这是我第一次尝试使用 Maatwebsite/Laravel-Excel 使用 Laravel 8 打包。
我正在尝试将数据从 excel 文件导入数据库表。
我的 table :
enter image description here
但我有一些困难或疑问:

  • 在我的数据库表中,我有一个外键,这意味着当我要导入数据时,我应该存储外键而不是值,例如:我有 id_type_facturation我的数据表中的列,所以我应该存储 id 而不是像“Conrat”这样的值。
  • 我有另一个约束,来自我的 excel 文件,列 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/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com