Я работаю над приложением для ведения блога в Ларавеле 8. < /p>
В форме, которую я использую для редактирования статей, у меня есть элемент нескольких селектов. < /p>
Я хочу, чтобы форма показала теги, которые были выбраны. Для этого я сделал следующее в представлении: < /p>
{{ __('Tags') }}
@php
$selected = explode(",", $tags);
@endphp
@foreach ($tags as $tag)
id, $selected)) ? 'selected' : '' }}>{{ $tag->name }}
@endforeach
< /code>
В контроллере у меня есть: < /p>
public function edit($id)
{
$article = Article::find($id);
return view(
'dashboard/edit-article',
[
'categories' => $this->categories(),
'tags' => $this->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()->attach($request->tags);
}
return redirect()->route('dashboard.articles')->with('success', 'The article titled "' . $article->title . '" was updated');
}
< /code>
По причине я не смог заметить, это не работает. Это означает, что теги статьи не выбраны в элементе
Я работаю над приложением для ведения блога в Ларавеле 8. < /p> В форме, которую я использую для редактирования статей, у меня есть элемент нескольких селектов. < /p> Я хочу, чтобы форма показала теги, которые были выбраны. Для этого я сделал следующее в представлении: < /p> [code]{{ __('Tags') }}
// 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()->attach($request->tags); }
return redirect()->route('dashboard.articles')->with('success', 'The article titled "' . $article->title . '" was updated'); } < /code> По причине я не смог заметить, это не работает. Это означает, что теги статьи не выбраны в элементе [/code]. Где моя ошибка?
В моем проекте Laravel я использую select2, чтобы иметь простую систему фильтров. Одна из вещей, которую я хочу сделать, — это сохранить старые значения во входных данных после фильтрации (и оставить их выбранными в серверной части). Я пытался...
В моем проекте Laravel я использую select2, чтобы иметь простую систему фильтров. Одна из вещей, которую я хочу сделать, — это сохранить старые значения во входных данных после фильтрации (и оставить их выбранными в серверной части). Я пытался...
У меня есть следующие таблицы: вопросы, участники, выборы и choice_participant (сводная таблица). Я отображал вопросы с вариантами их ответов на странице пользователя (я использовал переключатель для выбора варианта) и сохранял их в таблице...