Итак, у меня есть отношения, объявленные на родителях Модель как
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Parents extends Model
{
protected $fillable = [
'firstName',
'middleName',
'lastName',
'phoneNumber',
'gender',
];
public function students(){
return $this->belongsToMany('App\Student','parent_student','parentId','studentId');
}
}
с таблицей привязки parent_student
и таблицей студентов с колонкой classId
. вот модель студента
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
//
protected $fillable = [
'firstName',
'middleName',
'lastName',
'regNo',
'gender',
'dob',
'classId',
];
public function parents(){
return $this->belongsToMany('App\Parents','parent_student','studentId','parentId');
}
public function classes()
{
return $this->belongsTo('App\Classes','classId');
}
}
То, чего я добиваюсь, - это получение адресов электронной почты для родителей со студентами в одном классе, например, в классе 1, который я передаю classId из выпадающего списка, выбранного в форме в представлении, контроллеру.
Вот мой контроллер.
public function submitEmail(Request $request)
{
$validatedData = $request->validate([
'class' => 'required|integer',
'message' => 'string|max:255',
'subject' => 'string|max:255',
]);
$class = $request->input('class');
$message = $request->input('message');
$subject = $request->input('subject');
$parents = Parents::all();
$parents = Parents::where($parents->students->classId,"=",$class)->get();
die($parents);
}
Я довольно новичок в Laravel, и это далеко, я зашел так далеко. Любые предложения будут высоко оценены. (Я использую Laravel 5.6)