2016-07-12 3 views
0

ich ein Problem mit E-Mail senden mit Laravel haben, ist es meine Methode:Laravel E-Mail schicken, Fehler: Argument 2 bestanden

public function store(CreateUserRequest $request){ 
    $name = Input::get('name'); 
    $imie = Input::get('imie'); 
    $nazwisko = Input::get('nazwisko'); 
    $email = array('email' => Input::get('email')); 
    $password = Input::get('password'); 

    Mail::send(['name' => $name], function ($message) use ($name, $imie, $nazwisko, $email, $password) { 
     $message->from('[email protected]', 'System Magazyn'); 
     $message->attach('Your temporary password: '.['password' => $password]); 
     $message->to(['email'=>$email])->subject('Rejestracja Magazyn'); 

    }); 

    User::create($request->all()); 
    Session::flash('addUserOK', 'Użytkownik dodany poprawnie.'); 
    return redirect('user'); 
} 

Diese Methode zur Datenbank neue Benutzer gespeichert. Ich möchte E-Mails an neue Benutzer mit Informationen zur korrekten Registrierung und Informationen mit temporärem Passwort senden. Ich tat, wie es in der Dokumentation geschrieben https://laravel.com/docs/5.2/mail#sending-mail und wie es in diesem Thema: Laravel 4 from contact form to admin email, aber immer noch Laravel einen Fehler zurückgegeben:

FatalThrowableError in Mailer.php line 149: Type error: Argument 2 passed to Illuminate\Mail\Mailer::send() must be of the type array, object given, called in C:\xampp\htdocs\kurwa_magazyn\magazyn_michal\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 219

EDIT:

Dies ist Form neuer Benutzer registrieren :

{!! Form::open(['route' => 'user.store', 'method' => 'post', 'class' => 'form-horizontal']) !!} 

    {!! Form::text('name', null, ['class' => 'form-control', 'placeholder' => 'Nazwa użytkownika...']) !!}<br /> 
    {!! Form::text('imie', null, ['class' => 'form-control', 'placeholder' => 'Imię...']) !!}<br /> 
    {!! Form::text('nazwisko', null, ['class' => 'form-control', 'placeholder' => 'Nazwwisko...']) !!}<br /> 
    {!! Form::email('email', null, ['class' => 'form-control', 'placeholder' => 'Adres e-mail...']) !!}<br /> 
    {!! Form::text('password', uniqid(), array('class' => 'form-control', 'placeholder' => 'Podaj hasło...')) !!}<br /> 

    {!! Form::select('permissions', array('0' => 'Pracownik fizyczny', '2' => 'Magazynier', '3' => 'Demo użytkownik', '1' => 'Administrator'), NULL, ['class' => 'form-control']) !!}<br /> 
    {!! Form::hidden('remember_token', bcrypt(uniqid(rand(0,9)))) !!} 

    {!! Form::submit('Dodaj', ['class' => 'btn btn-default']); !!} 
{!! Form::close() !!} 

Antwort

0

ich denke, das Problem, das Sie haben in einer seltsamen Kombination dieser ist:

$email = array('email' => Input::get('email')); 

und diese

$message->to(['email'=>$email])->subject('Rejestracja Magazyn'); 

Nach API docs Verfahren to entweder Kombination übernimmt der E-Mail/Name oder oder ein Array

versuchen, Ihren Code zu ändern:

$message->to($email)->subject('Rejestracja Magazyn'); 

Da Sie Dieses Array wurde bereits früher hier definiert:

$email = array('email' => Input::get('email')); 
0

Ich weiß, das ist eine alte Frage, aber für jeden mit dem gleichen Problem muss das zweite Argument von Mail::send ein Array sein. Dieses Array könnte alle Daten enthalten, die in der Ansicht gelesen werden.

Der Code würde wie folgt sein:

$data = ['foo' => 'baz']; 

Mail::send(['name' => $name], $data, function ($message) use ($name, $imie, $nazwisko, $email, $password) { 
     $message->from('[email protected]', 'System Magazyn'); 
     $message->attach('Your temporary password: '.['password' => $password]); 
     $message->to(['email'=>$email])->subject('Rejestracja Magazyn'); 

    }); 

Dann in der Ansicht könnte die Variable $foo gedruckt werden:

<p>Variable foo: {{$foo}}</p> 
Verwandte Themen