Я сталкиваюсь с некоторой странной проблемой при попытке переместить файл (изображение) с помощью Laravel: при создании пользовательского класса запроса формы и после прохождения проверки я получаю сообщение об ошибке , но файлрегулярно перемещается.
Вот мой контроллер:
(...)
class ArticleController extends Controller{
public function store(StoreArticleRequest $request){
$article = new Article;
if ($request->hasfile('image')){
$name= rand(1, 10000).$request->file('image')->getClientOriginalName() ;
$move = $request->file('image')->move(public_path().'/images/articles/', $name);
$article->image = $name;
}
$article->title = request('title');
$article->preview = request('preview');
$article->text = request('content');
$article->user_id = \Auth::user()->id;
$article->source = request('source');
$article->save();
return view('admin.dashboard');
}
... а вот класс запроса формы:
(...)
class StoreArticleRequest extends FormRequest{
public function authorize(){
return true;
}
public function rules(){
return [
'title' => 'required|unique:articles',
'source' => 'required',
];
}
public function messages(){
return [
'title.required' => 'foo',
'title.unique' => 'bar',
'source.required' => 'baz',
];
}
}
Таким образом, , хотя файл перемещен в требуемое место , я получаю сообщение об ошибке:
Symfony \ Component \ HttpFoundation \ File \ Exception \ FileNotFoundException
The file "/tmp/php9lQ7wd" does not exist
Если я использую тот же код, но если я изменяю аргумент метода store в ArticleController, ошибки не возникает, и файлы перемещаются нормально:
public function store(Request $request){
(...the rest of the code in this method is exactly the same...)
Я что-то не так делаю?Есть ли способ это исправить?TIA, Ognjen
* Версия Laravel: 5.7
ОБНОВЛЕНИЕ: решено
Не было никакого странного поведения Laravel, просто недостаток моей концентрации.Проблема была в том, что я забыл добавить следующую строку в метод хранения (при использовании StoreArticleRequest):
$validated = $request->validated();