Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel 5.4中以一种形式多对多关系向多个表添加数据_Php_Laravel_Laravel 5.4 - Fatal编程技术网

Php 在laravel 5.4中以一种形式多对多关系向多个表添加数据

Php 在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

我试图插入两个具有多对多关系的表:赋值和收集器。我还在它们之间创建了一个名为assignment\u collector的中间表或透视表

在分配文件夹中创建.blade.php

<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
]);