Код: Выделить всё
public function edit($id)
{
$article = Article::find($id);
$attached_tags = $article->tags()->get()->pluck('id')->toArray();
return view(
'dashboard/edit-article',
[
'categories' => $this->categories(),
'tags' => $this->tags(),
'attached_tags' => $attached_tags,
'article' => $article
]
);
}
public function update(Request $request, $id)
{
$validator = Validator::make($request->all(), $this->rules, $this->messages);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator->errors())->withInput();
}
$fields = $validator->validated();
$article = Article::find($id);
// If a new image is uploaded, set it as the article image
// Otherwise, set the old image...
if (isset($request->image)) {
$imageName = md5(time()) . Auth::user()->id . '.' . $request->image->extension();
$request->image->move(public_path('images/articles'), $imageName);
} else {
$imageName = $article->image;
}
$article->title = $request->get('title');
$article->short_description = $request->get('short_description');
$article->category_id = $request->get('category_id');
$article->featured = $request->has('featured');
$article->image = $request->get('image') == 'default.jpg' ? 'default.jpg' : $imageName;
$article->content = $request->get('content');
// Save changes to the article
$article->save();
//Attach tags to article
if ($request->has('tags')) {
$article->tags()->sync($request->tags);
} else {
$article->tags()->sync([]);
}
return redirect()->route('dashboard.articles')->with('success', 'The article titled "' . $article->title . '" was updated');
}
Код: Выделить всё
@csrf
[i]
{{ __('Title') }}
@error('title')
[b]{{ $message }}[/b]
@enderror
{{ __('Article image') }}
@error('image')
[b]{{ $message }}[/b]
@enderror
[img]{{ asset([/img]
image) }}" alt="{{ $article->title }}">
[url=#]
[/i]
[/url]
{{ __('Content') }}
{{ old('content', $article->content) }}
@error('content')
[b]{{ $message }}[/b]
@enderror
{{ __('Update') }}
< /code>
Для удаления основного изображения статьи я использую функцию JavaScript ниже (также используется для удаления изображения предварительного просмотра при создании статьи); < /p>
function removeImage(event) {
var defaultImg = document.getElementById('defaultImage').value;
var input = document.getElementById('file');
var img = document.getElementById('imagePreview');
var imageContainer = img.parentNode.parentNode;
event.preventDefault();
if (event.currentTarget.classList.contains('edit')) {
img.src = defaultImg;
} else {
imageContainer.classList.add('d-none');
img.src = "";
input.value = "";
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... l-8-blog-a