2017-01-20 4 views
1

Je pense que je suis proche, je dois juste passer le $ excelFile dans Mail mais il continue à dire son indéfini, mais quand je passe $ truckstop_post il passe mais que les données ne sont pas formatées correctement bc il ne passe pas par Excel :: créer encore. Comment obtenir le résultat de \ Excel :: create dans Mail :: send ??Comment joindre le fichier Excel à l'e-mail?

public function truckstopPost() 
{ 
    $type = 'csv'; 



    $truckstop_post = Loadlist::select('pick_city', 'pick_state', 'delivery_city', 'delivery_state', 'trailer_type', 'pick_date', 'load_type', 'length', 'width', 'height', 'weight', 'offer_money', 'special_instructions', 'company_contact', 'contact_phone')->where('urgency', 'OPEN')->orderBy('id', 'desc')->get(); 

    $excelFile = \Excel::create('itransys', function($excel) use ($truckstop_post) { 
     $excel->sheet('mySheet', function($sheet) use ($truckstop_post) 
     { 
      $sheet->fromArray($truckstop_post); 

     }); 


     $info = Load::find(8500); 

     $info = ['info'=>$info]; 


     Mail::send(['html'=>'email.invoice_email_body'], $info, function($message) use ($info, $excelFile){ 

     $message->to('[email protected]')->subject('subject'); 

     $message->from('[email protected]', \Auth::user()->name); 

     $message->attachData($excelFile, 'Invoice.csv'); 

     }); 


     }); 

    return back()->with('status', 'You Posted Truckstop!'); 

} 

C'est ce que les résultats ressemblent si je passe truckstop_post $ en attachData() mais bien sûr thats pas un fichier csv bien formaté

enter image description here

+0

Quel est exactement le problème? Générer l'excel? Joignez-le à un courriel – Dekel

+0

Comment l'attacher à l'email, ce qui va dans $ message-> attachData (???, 'Invoice.csv'); Alors qu'est-ce qui arrive à -> download ($ type) ;? – mcornille

+0

Supprimez donc tout ce qui n'est pas lié à la pièce jointe du fichier de la question. Dites que vous avez le fichier X et vous aimeriez l'attacher. – Dekel

Répondre

1
public function post() 
{ 
    $type = 'csv'; 

    $create_excel = List::select('pick_city', 'pick_state', 'delivery_city', 'delivery_state')->where('urgency', 'OPEN')->orderBy('id', 'desc')->get()->toArray(); 

    $excelFile = \Excel::create('itrans', function($excel) use ($create_excel) { 
     $excel->sheet('mySheet', function($sheet) use ($create_excel) 
     { 
      $sheet->fromArray($create_excel); 


     }); 

    })->download($type); 

    Mail::send(['html'=>'email.email_body'] function($message) { 

    $message->to('[email protected]') 

    ->subject('Email Subject Line'); 

    $message->from('[email protected]', 'Daniel'); 

    $message->attachData($excelFile, 'Invoice.csv'); 

}); 

    return $excelFile; 

} 
+0

J'ai mis à jour ma question, c'est presque de travail! – mcornille

+0

Post la sortie de dd ($ create_excel) – Paras

+0

pouvez-vous dd ($ create_excel) après la ligne où il est initialisé et avant que le \ Excel :: create est appelé? – Paras