【发布时间】:2017-08-29 14:35:17
【问题描述】:
我有两个单独的表 students 和 tutors。我还设置了带有两个值students_studentid 和tutors_tutid 的数据透视表students_tutors。在事情的流程中,客户想要为学生分配导师,反之亦然,添加它们或稍后编辑它们。所以一个学生可能有很多导师,一个导师可能有很多学生。现在,我希望在发生此类选择时自动更新数据透视表值。可以一次性分配多个导师/学生。我在数据透视表上自动更新时遇到困难。我对 Laravel 很陌生。任何人都可以建议如何去做以及使用什么代码以及在哪里更新枢轴值并在视图中显示。
我的add.blade.php 学生:
<select name="tutid" id="tutors" multiple>
@foreach($tutors as $tutor)
<option value="{{$tutor->tutid}}">{{$tutor->name}}</option>
@endforeach
</select>
我的Student 模特:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
protected $primaryKey = 'studentid';
public function user()
{
return $this->belongsTo(User::class);
}
public function Tutors()
{
return $this->belongsToMany(Tutors::class);
}
public function Invoices()
{
return $this->belongsToMany(Invoices::class);
}
}
我的Tutor 模特:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tutor extends Model
{
protected $guarded = [];
protected $primaryKey = 'tutid';
public function user()
{
return $this->belongsTo(User::class);
}
public function Students()
{
return $this->belongsToMany(Students::class);
}
}
我的学生控制器add() 方法:
public function add(Student $student, Tutor $tutor)
{
$students = Student::all();
$tutors = Tutor::all();
return view('students.add', compact('students', 'tutors'));
}
【问题讨论】:
-
你能展示你到目前为止所做的事情吗?我的意思是模型和迁移。
-
是的,请展示一些研究成果:)
-
@louisfischer 如果您想让stackoverflow.com/review/suggested-edits/17178443 获得批准,您可能需要标记该问题,因为您所指的 cmets 似乎无处可寻。
-
连同我建议的编辑我将 cmets 标记为“不再需要”。发现这些标志很有帮助,因此我所指的 cmets 已被删除。
标签: laravel eloquent pivot-table