Я пытаюсь сделать многие-ко-многим дб отношений в моем веб-сайте, чтобы «Student» оба «университеты» и «майоры», как многие-ко-многим:Laravel неожиданно изменил имя моей таблицы?
class Student extends Model
{
protected $table = 'students';
protected $fillable = ['username','password','email','degree','avatar','description'];
public function universities()
{
return $this->belongsToMany('App\University');
}
public function majors()
{
return $this->belongsToMany('App\Major');
}
}
и я тоже созданные модели и файлы миграции, и create_student_university_table.php
и create_student_major_table.php
.
Но при создании нового ученика, ужасно странная ошибка:
SQLSTATE [42S02]: Base таблицы или просмотреть не найдено: 1146 Таблица 'ozudb.major_student' не существует
это так странно для двух аспектов:
University
вещь работает отлично, но это не будет работать дляMajor
даже они точно такой же процесс- Я никогда не набирал ни одной вещи, как
major_student
! Файл миграции создает таблицуstudent_major
. Я даже искал ключевые словаmajor_student
и не нашел результата во всех моих файлах.
Этот странный вопрос разрушил мой вечер - все еще борется. А вот что происходит при создании нового студента:
public function postStudentRegister(Request $request)
{
\Auth::login("student",$this->createStudent($request->all()));
// store student_university and student_major pairs into table
$student = Student::where('username',$request->username)->first();
$uniarr = [];
$majorarr = [];
$arr = explode(',', $request->universities);
$arrLen = sizeof($arr);
for($i=0;$i<$arrLen;$i++) {
array_push($uniarr, University::where('name',$arr[$i])->first()->id);
};
$student->universities()->attach($uniarr);
$arr = explode(',', $request->majors);
$arrLen = sizeof($arr);
for($i=0;$i<$arrLen;$i++) {
array_push($majorarr, Major::where('name',$arr[$i])->first()->id);
};
$student->majors()->attach($majorarr);
return redirect('student/regis-success');
}
Ошибка заинтересовавшись последней второй линии, $student->majors()->attach($majorarr);
Laravel пожалуйста, почему вы изменить свое имя таблицы?
Amazing .. Я не могу больше поблагодарить –
Anytime Stanley – oseintow