Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 12.09.2015 12:47:51

schel4ok7

не работает отправка сообщений без вложения

Я сделал в контроллере функцию отправки сообщения с вложением.
Но почему-то не могу понять как сделать это вложение не обязательным. Сейчас при попытке отправки сообщения без вложения возникает вот такая ошибка

ErrorException in PageController.php line 59:
Undefined index: attachment

вот такая конструкция не помогает - ошибка не пропадает

if ( $input['attachment']->getRealPath() ) { $message->attach  .....  }

вот полный код контроллера
app/Http/Controllers/PageController.php

<?php namespace App\Http\Controllers;
use Form;
use Input;
use Mail;
use Redirect;
use Request;
use Session;
use Validator;
use App\Category;
use App\User;
use App\Http\Controllers\Controller;
use App\Http\Requests\ContactFormRequest;

class PageController extends Controller {

    public function sendmail(ContactFormRequest $request) 
    {
        $category = Category::where('sef', '=', 'contacts')->first();
        $input = Input::all();
    //  return var_dump($input['attachment']->getRealPath());

        Mail::send('emails.contacts',
            array(
                'name' => $request->input('name'),
                'tel' => $request->input('tel'),
                'email' => $request->input('email'),
                'user_message' => $request->input('message'),
                'url' => $request->url(),
                ), 
            function($message) use ($request, $input)
                {
                    $message->from('admin@mail.ru', $request->input('name') );
                    $message->to('test@mail.ru', 'test');
                //  $message->сс('user@mail.ru', 'user');
                    $message->replyTo($request->input('email'), $request->input('name') );
                    $message->subject('Письмо со страницы контактов');
                    if ( $input['attachment']->getRealPath() ) 
                    {
                        $message->attach($input['attachment']->getRealPath(), array(
                            'as'    => $input['attachment']->getClientOriginalName(), 
                            'mime'  => $input['attachment']->getMimeType()));
                    }

                });
        return Redirect::route('contacts')->withCategory($category)
                                          ->with('message', 'Ваше сообщение успешно отправлено!');
    }

и еще незначительная проблема, которая не особо важна, но показалась мне странной
поле 'name' имеет вот такую валидацию

'name' => 'required|alpha|max:30|min:2',

но когда я случайно ввел имя по английски, то получил ошибку, как будто я ввел не буквы

Подвал раздела