У меня много-много отношений.Мой основной объект - это таблица участников, и эти члены могут иметь несколько интересов в качестве раскрывающегося списка.Интерес может также иметь несколько членов.
Когда я тестирую мое представление создания, я получаю следующую ошибку:
SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 Таблица 'tomcrud.interest_member'не существует (SQL: выберите interests
. *, interest_member
. member_id
как pivot_member_id
, interest_member
. interest_id
как pivot_interest_id
из interests
внутреннее соединение interest_member
на interests
. id
= interest_member
. interest_id
, где interest_member
. member_id
равно нулю) (представление: G: \ laragon \ www \ tomcrud \ resources \ views \ members \ partials \ member_form.blade.php)(Представление: G: \ laragon \ www \ tomcrud \ resources \ views \ members \ partials \ member_form.blade.php)
Если я правильно читаю документы на laravel, таблица Interest_member должна создаваться автоматически со всеми соответствующимиключи.Я не вижу такой таблицы в моей схеме.Однако я могу видеть таблицы своих членов и интересов.
Я считаю, что мои модели настроены правильно:
Модель участника:
class Member extends Model
{
public function interests()
{
return $this->belongsToMany('App\Interest', 'interest_member');
}
}
Модель интереса:
class Interest extends Model
{
public function members()
{
return $this->belongsToMany('App\Member');
}
}
Функция создания () моего MemberController:
public function create()
{
$member = new Member;
$data = array();
$data['member'] = $member;
$data['languages'] = Language::pluck('name', 'id');
$data['interests'] = Interest::pluck('name', 'id');
return view('members.create', $data);
}
Множественный выпадающий список моего бланка member_form:
<div class="form-group">
{!! Form::label('interest_id[]', 'Interest:') !!}
{!! Form::select('interest_id[]', $interests, $member->interests->pluck('id'), ['multiple' => true, 'class' => 'form-control']) !!}
</div>