2014-02-05 2 views
2

У меня есть формаLaravel, Swiftmailer ошибка: Класс не существует

{{ Form::open(array('route' => 'submit.contactAct', 'class' => 'form-horizontal')) }} 

      {{ Form::label('fremail', trans('people.email')) }} <span class="req">*</span> 
      {{ Form::text('fremail', Input::old('fremail'), array('class' => 'form-control')) }} 
      {{ $errors->first('fremail', '<span class="help-block alert alert-danger">:message</span>') }} 

      {{ Form::label('comment', trans('people.contact messages')) }} <span class="req">*</span> 
      {{ Form::textarea('comment', Input::old('comment'), array('class' => 'form-control', 'rows' => 5)) }} 
      {{ $errors->first('comment', '<span class="help-block alert alert-danger">:message</span>') }} 

      {{ Form::hidden('email', $actor['email']) }} 

      {{ Form::submit('Submit', array('class' => 'btn btn-success')) }} 

     {{ Form::close() }} 

Он имеет три поля: от электронной почты поля («fremail»), поле «комментарий» и поле «Адрес электронной почты», который захватывает электронную почту из таблицы базы данных «actor».

Моя функция отправки выглядит так. Он проверяет данные и отправляет их функции отправки. Он также создает переменную $ star и сохраняет поле «email». Для этого примера электронной почты хранится в [email protected]

public function submitContactAct() 
{ 

    //prepare input 
    $input = Input::except('_token'); 
      $star = Input::get('email'); 

    if (! $this->validator->with($input)->passes()) 
    { 
     return Redirect::back()->withErrors($this->validator->errors())->withInput($input); 
    } 


    $this->mailer->sendContactUsAct($input, $star); 

    return Redirect::back()->withSuccess(trans('main.contact success')); 
} 

Это моя функция отправки по электронной почте, я поставил setReplyTo в переменном $ звезд, но я продолжаю получать класса actorname @ gmail.com. com не существует

public function sendContactUsAct(array $input, $star) 
{ 
     //get contact us email for db 

      $options = App::make('Options'); 
    $email = $options->getContactEmail(); 

    if ($email) 
    { 
     Mail::send('Emails.ContactAct', $input, $star, function($message) use($email) 
     { 
        $message->setReplyTo($star); 
      $message->to($email)->subject(trans('main.contact email subject')); 
     }); 
    } 
} 

Я не знаю, почему он думает, что строка в $ star - это класс.

ответ

1

Попробуйте

Mail::send('Emails.ContactAct', $input, function($message) use ($email, $star) 
{ 
    $message->setReplyTo($star); 
    message->to($email)->subject(trans('main.contact email subject')); 
}); 

Variable $star должен быть передан с помощью use, потому что это не входит в комплект вашего закрытия.

+0

Wow works! спасибо – Stephenmelb

+0

Добро пожаловать @Stephenmelb :-) –

Смежные вопросы