asAttach in Form Tags Laravel(多对多关系)

asAttach in Form Tags Laravel(多对多关系),laravel,many-to-many,Laravel,Many To Many,基本上我创建了一个模型标签和项目 项目模型: protected $fillable = [ 'title', ]; public function tags() { return $this->belongsToMany(Tags::class); } 标签型号: use HasFactory; protected $fillable = [ 'coding', 'name', ]; public function projects() {

基本上我创建了一个模型
标签
项目

项目模型:

protected $fillable = [
    'title',
];

public function tags()
{
    return $this->belongsToMany(Tags::class);
}
标签型号:

use HasFactory;

protected $fillable = [
    'coding',
    'name',
];

public function projects()
{
    return $this->belongsToMany(Project::class);
}
我还做了一次迁移:

Schema::create('tag_project', function (Blueprint $table) {
    $table->foreignId('tag_id')->constrained();
    $table->foreignId('project_id')->constrained();
});
现在,当我想创建一个新的
项目
时,我想添加标签,我该如何存档

项目控制员:

$this->validate($request, [
    'title' => 'required|max:200',
]);

Project::create([
    'title' => $request->title,
]);

return redirect()->route('dashboard');
请帮忙

形式


像这样吗?

$project=project::创建(…)
,然后
$project->tags()->附加(…)
:。另外,作为旁注,模型名称是单数的<代码>标签应该是
标签
:)@Timleiss,我如何在我的项目上存档它显示了我可以从中选择的标签?你必须找到一种方法,在创建项目时发送你想要关联到项目的标签,然后执行
$project->Tags()->attach($tagid)
。您当前只显示控制器代码,而不是表单/AJAX,因此我只能推测您当前的方法@Timlei updatet it,如何将其与关系绑定好,
select name=“tags”
应该是
select name=“tags[]”
,每个
都应该有一个标记的ID,然后您就可以做
$project->tags()->附加($request->input('tags'))。如果您试图在项目的同时创建标记,那么它会变得更复杂。
    <form action="{{ route('project.create') }}" method="POST" enctype="multipart/form-data">
                        @csrf
                        <div class="form-group mb-3">
                            <label for="title" class="admin_label">Title</label>
                            <input type="text" class="admin_input" name="title" id="title" placeholder="Admin...">
                            @error('title')
                            {{$message}}
                            @enderror
                        </div>
                        <select name="tags" id="tags">
                            <option value="one">Hello</option>
                        </select>
                        <button type="submit" class="btn submit btn--action">Create Project</button>
                    </form>
     $poject = Project::create([
            $project->tags->attach($tagsID),
            'title' => $request->title,
        ]);