Создал модель 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();