У меня есть следующее поле тега в моей форме для создания тегов в сообщении блога, поскольку теги блога могут быть несколько связаны с одним сообщением, для этого я использую select2, а вот поле ввода I'mv используется:
{{ Form::label('tags', 'Tags:') }}
<select name="tags[]" class="form-control select2-multi" multiple="multiple">
@foreach($tags as $tag)
<option value="{{ $tag->id }}">{{ $tag->name }}</option>
@endforeach
</select>
Это функция, в которой данные отправляются на проверку, а затем сохраняются в базе данных
public function store(Request $request)
{
// -------- WORKFLOW HERE ------
// validate the data from the form
$this->validate($request,array(
'title' => 'required|max:255',
'slug ' => '|min:5|alpha_dash|max:255|unique:posts,slug|',
'category_id' => 'required|integer',
'body' => 'required'
)); // end of validation
// sotre that data into database
$post = new Post;
$post->title = $request->title;
$post->slug = $request->slug;
$post->category_id = $request->category_id;
$post->body = $request->body;
$post->save();
$post->tags()->sync('$request->tags',false);
Session::flash('success','Your Post has been Successful saved !');
// and then redirect the user to some page
return redirect()->route('posts.show',$post->id);
}
Получение следующей ошибки при попытке сохранить сообщение
Call to undefined method Illuminate\Database\Query\Builder::tags()
Метка Модель
class Tag extends Model
{
public function post(){
return $this->belongsToMany('App\Post');
}
}
Структура таблицы из post_tag