Laravel,Swiftmailer错误:类不存在

时间:2014-02-05 01:33:32

标签: php forms email 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() }}

它有三个字段:a来自电子邮件字段('fremail'),'comment'字段和'email'字段,用于从'actor'数据库表中获取电子邮件。

我的提交功能如下所示。它验证数据并将其发送到发送功能。它还会创建一个$ star变量并存储'email'字段。对于此示例,电子邮件存储在$ star=actorname@gmail.com

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设置为$ star变量,但我一直收到 类actorname@gmail.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 个答案:

答案 0 :(得分:1)

试试这个

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

变量$star必须使用use传递,因为它不在您的闭包范围内。