Актуальный способ загрузки файла через фронт

Чтобы всё работало, в первую очередь не забываем прописать форме атрибут enctype="multipart/form-data" и добавить скрытое поле с указанием метода-обработчика: 

<input type="hidden" name="_handler" value="onSave">

и сессионный ключ с токеном:

{{ form_token() }}
{{ form_sessionKey() }}

Пусть за загрузку файла у нас отвечает это поле: 

<input type="file" name="poster">

Тогда в самом файле компонента метод-обработчик будет выглядеть так:

public function onSave(){
$book = new Book();
$book->title = Input::get('title');
$book->save();

$file_poster = Input::file('poster');

if (Input::hasFile('poster') && $file_poster->isValid()) {
$file = new File();
$file->data = $file_poster;
$file->is_public = true;
$file->save();

$file_to_book_relation = $book->poster();
$file_to_book_relation->add($file, $this->sessionKey);
}

Flash::success('Книга добавлена!');
return Redirect::back();
}

Думаю здесь всё максимально понятно, добавлю только что в самой модели Book должно быть объявлено свойство, указывающее на тип связи модели с файлом. В данном случае у меня так: 

public $attachOne = [
  'poster' => 'System\Models\File'
];

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.