Новичок в Laravel, так что будьте добрым lol
Моя конфигурация для mail.php верна, и письма успешно отправляются для ввода текста в gmail, но не уверены, как выполнить задачу для файлов. Я был бы признателен за помощь или ссылки.
Заранее спасибо!!
Код в routes.php
Route::get('/', function() { return View::make('form'); }); Route::post('/form', function() { $data = ['firstname' => Input::get('firstname'), 'username' => Input::get('username'), 'email' => Input::get('email'), 'resume' => Input::get('resume') ]; $rules = array( 'username' => 'Required|Min:7', 'email' => 'Required|Email', 'firstname' => 'Required', 'resume' => 'Required' ); $validation = Validator::make(Input::all(), $rules); if ($validation->fails()) { // Validation has failed. return Redirect::to('/')->withInput()->withErrors($validation); } else { Mail::send('emails.welcome', $data, function($message) { $message->to('mail@domain.net'); $message->subject('Welcome to Laravel'); $message->from('sender@domain.net'); }); return Redirect::to('/')->withInput()->with('success', 'Thank you for your submission.'); } // });
Код в form.blade.php
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Form</title> </head> <body> @if(Session::has('success')) <div class="alert-box success"> <h2>{{ Session::get('success') }}</h2> </div> @endif {{ Form::open(array('url' => '/form')) }} <p>{{ Form::label('email', 'E-Mail Address');}} <br>{{ Form::email('email', 'example@mail.com');}}</p> {{ $errors->first('email') }} <p>{{ Form::label('username', 'Username');}} <br> {{Form::text('username');}}</p> {{ $errors->first('username') }} <p>{{ Form::label('firstname', 'First Name');}} <br> {{Form::text('firstname');}}</p> {{ $errors->first('firstname') }} <p>{{ Form::file('resume'); }}</p> <p>{{Form::submit('Send Details');}}</p> {{ Form::close() }} </body> </html>
Во-первых, убедитесь, что ваш файл поддерживает загрузку файлов:
{{ Form::open(array('url' => '/form', 'files' => true)) }}
После этого вы можете сделать что-то вроде этого:
$input = Input::all(); Mail::send('emails.welcome', $data, function($message) use ($input) { $message->to('mail@domain.net'); $message->subject('Welcome to Laravel'); $message->from('sender@domain.net'); $message->attach($input['resume']->getRealPath(), array( 'as' => 'resume.' . $input['resume']->getClientOriginalExtension(), 'mime' => $input['resume']->getMimeType()) ); });
Документация: http://laravel.com/docs/requests#files и http://laravel.com/docs/mail#basic-usage