Ошибка может быть вызвана многими причинами, такими как php config, et c. Я думаю, что код нуждается в небольшом рефакторинге, попробуйте использовать Laravel File Storage и Mutators . Взгляните также на Внедрения зависимостей .
Если вы используете Laravel 6 или 7 Способ загрузки файла будет следующим:
На ваш взгляд:
/*
* make sure that the form has the attribute:
* enctype="multipart/form-data"
* or else no file will be passed
* */
<form action="action.php" enctype="multipart/form-data">....
В методе updateSetting
вашего контроллера:
public function updateSetting(Request $request, Setting $settings)
{
// do your validations and others
$settings->update($request->all());
// else: $settings->create($request->all());
// * you could use eloquent's updateOrCreate() method, look for it in the documentation
// your redirect code...
}
И в вашей модели настроек добавьте мутатор, который обрабатывает настройки администратора lo go, а также загружает файл и удаление старого. (Вы также можете создать помощника для лога загрузки c)
public function setAdminLogoAttribute($value)
{
// Add your delete old admin logo logic
if (is_file($value)) {
$fileName = time() . "_" . $value->getClientOriginalName();
$path = $value->move(
public_path('uploads'),
$fileName
); // or create a handleImage() helper
$this->attributes['admin_logo'] = $fileName;
}
}
Если это не сработает, возможно, проблема в конфигурации, или, возможно, нет, вы можете попытаться дать нам больше информации как конкретно произошла ошибка