Загружаю изображения функцией
uploadImage
код функции Model
public function uploadImage($image)
{
if (!$image->has('image')) {
return response()->json(['message' => 'Missing file'], 422);
}
$this->removeImage();
$filename = str_random(10) . '.' . $image->extension();
$image->storeAs('uploads', $filename);
$this->image = $filename;
$this->save();
}
код метода Store
use Illuminate\Validation\Rule;
use Illuminate\Http\Request;
use App\Models\Post;
public function store(Request $request)
{
//
$this->validate($request, [
'name' =>'required',
'content' => 'required',
'excerpt' => 'required',
'category_id' => 'required',
'images' => 'nullable|image'
]);
$post = Post::create($request->all());
$post->uploadImage($request->file('image'));
return redirect()->route('admin.posts')->with('status', 'Ваша статья добавлена');
}
код формы добавления материала
<form class="formcreate" id="editor" action="{{ Route('article.store') }}" method="post" enctype="multipart/form-data">
@csrf
<p>
<label for="inputname" class="col-md-4 col-form-label text-md-end">Заголовок статьи</label>
<input id="inputname" class="inpelement" type="text" name="name" placeholder="Заголовок статьи" />
</p>
<p>
<label for="category_id" class="col-md-4 col-form-label text-md-end">Категории</label>
<select id="category_id" class="inpelement" name="category_id">
<option value="1">Выберите героя</option>
@foreach($categories as $category )
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
</select></p>
<p>
<label for="images" class="col-md-4 col-form-label text-md-end">Миниатюра статьи</label>
<input id="images" class="inpelement" type="file" name="images" /></p>
<p>
<label for="excerpt" class="col-md-4 col-form-label text-md-end">Описание:</label>
<textarea id="excerpt " cols="10" rows="5" class="inpelement" name="excerpt"></textarea>
<script type="text/javascript">
CKEDITOR.replace( 'excerpt' );
</script>
</p>
<p>
<label for="content" class="col-md-4 col-form-label text-md-end">Текст статьи:</label>
<textarea id="content" cols="10" rows="5" class="inpelement" name="content"></textarea>
<script type="text/javascript">
CKEDITOR.replace( 'content' );
</script>
</p>
<p>
<label for="source" class="col-md-4 col-form-label text-md-end">Ссылка на источник статьи</label>
<input id="source" class="inpelement" type="text" name="source" placeholder="https://" />
</p>
<p>
<label for="tegs" class="col-md-4 col-form-label text-md-end">Добавте метку</label>
<input id="tegs" class="inpelement" type="text" name="tegs" />
</p>
<p>
<input type="submit" style="background: #44446b; color: #FFF; padding: 7px; border: none;" value="Добавить статью" />
</p>
</form>
Самое странное, что в базу статьи грузятся и даже с изображениями но путь полный и из временной директории
OpenServer
Может дело в настройке сервера?