Laravel 5.6: вызов функции-члена getRealPath () для строки - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь отправить электронное письмо с файлом в моем проекте в Laravel, но я получаю эту ошибку Call to a member function getRealPath() on string Это моя store функция:

public function store(Request $request)
{     
    $data = array(
       'destino'    => $request['destino'],
       'asunto'     => $request['asunto'],
       'contenido'  => $request['contenido'],
       'a_file'     => $request['a_file']
    );

    Mail::send('administracion.email.email_body', $data, function($message) use ($data)
    {

        $message->to($data['destino']);
        $message->subject($data['asunto']);
        $message->from(Config::get('mail.username'));

        $message->attach($data['a_file']->getRealPath(), array(
        'as'    => 'a_file' . $data['a_file']->getClientOriginalExtension(),
        'mime'  => $data['a_file']->getMimeType()) 
        );
    });

    return Redirect::to('email');

}

1 Ответ

0 голосов
/ 10 октября 2018

Похоже, $request['a_file'] дает вам строку, а не UploadedFile экземпляр.Поддерживает ли ваша форма загрузку файлов?

Чтобы добавить это с помощью фасадной формы laravelcollective, нужно передать 'files' => true в следующих вариантах:

{!! Form::open(['url' => route('myRoute'), 'method' => 'post', 'files' => true]) !!}

https://laravelcollective.com/docs/master/html#file-input

Или, если вы не используете помощник по формам, установите атрибут enctype html следующим образом:

<form method="POST" action="http://example.com" enctype="multipart/form-data"></form>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...