Twitt
@Twitt

В чем странность с загрузкой изображений?

Создал модель Image для загрузки файла в нее, вот ее код:
class Image
{
    public $file;
    
    public function hash() {
        return $this->file->hashName();
    }
    
    public function saveFile() {
        $name = $this->hash();
        if($this->file->move(public_path() . '/imgs', $name)) {
            return $name;
        }
    }
}

В контроллере мне нужно принять из реквеста этот файл, запихнуть в модель Image, в ней вызвать метод saveFile(), и передать другой модели для сохранения в бд название загруженной картинки (хэшированное, конечно же).
Оно то получается, только не так как надо..
В папку imgs загружается действительно хэшированное название файла, а в бд сохраняется то, что лежит в папке temp, почему то:
D:\OServer\OpenServer\userdata\temp\php1BD6.tmp

Экшн контроллера:
public function store(JournalStoreRequest $request) {
        $journal = new Journal;
        $image = new Image;
        $image->file = $request->file('image');
        $journal->image = $image->saveFile();
        if($journal->fill($request->all()) && $journal->save()) {
            redirect()->route('journals.index');
        }
    }

Почему в бд сохраняется не хэшированное название? При том, что здесь по идее как должно передаваться как раз это, хэшированное значение
$journal->image = $image->saveFile();
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@d-virt
Заменить на:
if($journal->fill($request->except('image')) && $journal->save()) {

И НЕ используйте (но осмысленно можно) $request->all()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы