2016-07-12 4 views
0

Guten TagSenden gelegentlich ids - Laravel E-Mail

ich Mailgun bin mit der Bestellung mit den erforderlichen Informationen E-Mails an die Benutzer zu senden, nachdem Sie das Formular absenden, ich es geschafft, das Thema und die E-Mail-Adresse zu senden, aber ich habe Probleme beim Senden der Zufallszahl, die bei der Erstellung der Bestellung zugewiesen wird.

hier ist mein Controller:

public function store(Request $request) 
{ 
    $order = $user->orders()->create([ 

      'randomid' => rand(100000,999999), 
      'subject' => $request->get('subject'), 
      'email' => $request->get('email'), 
    ]); 

    $data = $request->only('subject', 'email', 'randomid'); 

    Mail::send('emails.note', 
     $data 
     , function($message) use ($data) 
     { 
      $message->subject('New Order: '.$data['subject']) 
       ->from('[email protected]') 
       ->to($data['email']); 
     }); 
} 

Antwort

0

ich sah, dass Sie die $ Daten von Request-Objekt

$data = $request->only('subject', 'email', 'randomid'); 

aber randomid wurde erstellt Methode

$order = $user->orders()->create([ 

     'randomid' => rand(100000,999999), 
     'subject' => $request->get('subject'), 
     'email' => $request->get('email'), 
]); 

Also dort erzeugt wird, nicht randomid in Anfrage.

Ich glaube, Sie $ Daten von $ um wie die Folowing bekommen sollte:

$data = $order->toArray(); 

So haben Sie:

public function store(Request $request) 
{ 
    $order = $user->orders()->create([ 

      'randomid' => rand(100000,999999), 
      'subject' => $request->get('subject'), 
      'email' => $request->get('email'), 
    ]); 

    $data = $order->toArray(); 

    Mail::send('emails.note', 
     $data 
     , function($message) use ($data) 
     { 
      $message->subject('New Order: '.$data['subject']) 
       ->from('[email protected]') 
       ->to($data['email']); 
     }); 
} 
+0

Dank Ich vermisste es total – SS2015

+0

@ SS2015 Sie sind willkommen! – Chung

0

Die randomid kommt nicht von der Anforderung. Sie generieren ihren Wert manuell mit rand(100000,999999)!

Bitte versuchen Sie dies:

public function store(Request $request){ 
    $data = [ 
     'randomid' => rand(100000, 999999) , 
     'subject' => $request->input('subject') , 
     'email' => $request->input('email') 
    ]; 
    $order = $user->orders()->create($data); 
    Mail::send('emails.note', $data, function ($message) use($data) { 
     $message->subject('New Order: ' . $data['subject']) 
     ->from('[email protected]')->to($data['email']); 
    }); 
}