Php 在laravel 5.4中以一种形式多对多关系向多个表添加数据
我试图插入两个具有多对多关系的表:赋值和收集器。我还在它们之间创建了一个名为assignment\u collector的中间表或透视表 在分配文件夹中创建.blade.phpPhp 在laravel 5.4中以一种形式多对多关系向多个表添加数据,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,我试图插入两个具有多对多关系的表:赋值和收集器。我还在它们之间创建了一个名为assignment\u collector的中间表或透视表 在分配文件夹中创建.blade.php <form method="POST" action="{{ route('assignments.store') }}"> {{ csrf_field() }} <div class="form-group"> <label
<form method="POST" action="{{ route('assignments.store') }}">
{{ csrf_field() }}
<div class="form-group">
<label for="area_id">Area: </label>
<select class="form-control" name="area_id">
@foreach ($areas as $area)
<option value= "{{ $area->id }}">
{{ $area->campus }} {{ $area->building }} {{ $area->floor }}
</option>
@endforeach
</select>
</div>
<div class="form-group">
<label for="mts_id">MTS: </label>
<select class="form-control" name="mts_id">
@foreach ($mts as $mt)
<option value= "{{ $mt->id }}">
{{ $mt->location }}
</option>
@endforeach
</select>
</div>
<div class="form-group">
<input type="hidden" class="form-control" id="status" name= "status" value="Active">
</div>
<div class="form-group">
<label for="collector_id">Collector: </label>
<select class="form-control" name="collector_id">
@foreach ($assignments as $assignment)
@foreach($assignment->collectors as $collector)
<option value= "{{ $collector->id }}">
{{ $collector->firstname }} {{ $collector->lastname }}
</option>
@endforeach
@endforeach
</select>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Add</button>
</div>
</form>
分配模型
public function collectors()
{
return $this->belongsToMany(Collector::class);
}
收集器模型
public function assignments()
{
return $this->belongsToMany(Assignment::class);
}
我在这个问题上遇到了一个错误:App\AssignmentCollector,因为没有AssignmentCollector,而且在阅读教程时,您不需要为透视表创建模型。我读了其他文章,但我更困惑了。请帮帮我,因为我在拉雷维尔还是新手,我有点困惑。谢谢 分配收集器表不需要模型。您要做的是创建分配,然后分配
$assignment->collectors()->create([
// all the collector data
]);
从浏览器中显示错误对于透视表,您不需要创建透视表我说明了错误,类“App\AssignmentCollector”未找到如果您已经有
$collector
实例,那么您可以像这样使用$assignment->collector()->associate($collector))
关系名称应该是collector
而不是collector
在Assignment
model中,所以我要把这个in-store函数放在AssignmentController中,对吗?然后我把创建赋值放在里面,是收集器的所有数据吗?因为我已经有了采集器,我要做的就是在作业中分配采集器
$assignment->collectors()->create([
// all the collector data
]);