【发布时间】:2019-09-14 23:50:28
【问题描述】:
我有 3 个表:培训师、课程、课程培训师
当我创建一个新的教练时,我必须将它所播放的课程链接到它,我怎样才能将刚刚创建的教练的 ID 和课程的 ID 传递给桥接表 course_trainer?
目前我只能为课程传递一个 id,但我无法传递培训师的 id,也无法为每个所选课程创建新记录(报告)
<div class="container">
<div class="row">
<div class="col-lg-12">
<form class="form-group" action="{{route('trainers.store')}}" method="post" enctype="multipart/form-data">
@csrf
@method('POST')
<div class="form-group">
<label for="name">Nome</label>
<input type="text" class="form-control" name="name" placeholder="Inserisci il nome dell'istruttore">
</div>
<div class="form-group">
<label for="surname">Cognome</label>
<input type="text" class="form-control" name="surname" placeholder="Inserisci il cognome dell'istruttore">
</div>
<div class="form-group">
<label for="description">Descrizione</label>
<textarea class="form-control" name="description" rows="8" cols="80"></textarea>
</div>
@foreach ($courses as $course)
<div class="form-check form-check-inline mb-2">
<input name="course_id" class="form-check-input" type="checkbox" value="{{$course->id}}">
<label class="form-check-label" for="course_id">{{$course->name_course}}</label>
</div>
@endforeach
<div class="custom-file">
<input type="file" class="custom-file-input" name="image">
<label class="custom-file-label" for="image">Scegli un'immagine</label>
<div class="invalid-feedback"><strong>N.B.</strong> dimensione consigliata 160px x 160px</div>
</div>
<div class="form-group">
<input type="submit" class="form-control" value="INSERISCI ISTRUTTORE">
</div>
</form>
</div>
</div>
</div>
public function store(Request $request)
{
$data = $request->all();
$image = Storage::disk('public')->put('trainers',$data['image']);
$newTrainer = New Trainer();
$newTrainer->name = $data['name'];
$newTrainer->surname = $data['surname'];
$newTrainer->description = $data['description'];
$newTrainer->image = $image;
$newTrainer->courses()->attach($data['course_id']);
$newTrainer->save();
return redirect()->route('trainers.admin');
}
【问题讨论】:
-
在附加课程之前先尝试保存您的培训师。
-
嘿兄弟,已经发布了你的模型培训师
-
正如@thisiskelvin 所说,您可能需要先保存新的
trainer,因为我们需要它有一个id(存储到数据库时自动分配)来存储在@987654326 @. -
谢谢大家,现在您输入了两个 id,但始终只插入一条记录,即使我选择了 3 门课程,这是培训师模型命名空间 App;使用 Illuminate\Database\Eloquent\Model;类培训师扩展模型 { protected $fillable = ['name','surname','description','image'];公共函数课程(){返回$this->belongsToMany(Course::class)->withTimestamps(); } }
-
检查this q/a.
标签: php mysql laravel eloquent many-to-many