Много ко многим |Ошибка просмотра - PullRequest
0 голосов
/ 06 июня 2018

У меня много-много отношений.Мой основной объект - это таблица участников, и эти члены могут иметь несколько интересов в качестве раскрывающегося списка.Интерес может также иметь несколько членов.

Когда я тестирую мое представление создания, я получаю следующую ошибку:

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>

1 Ответ

0 голосов
/ 06 июня 2018

Вам необходимо создать таблицу interest_member, которая может иметь 3 столбца (id, member_id, Interest_id).Тогда вы можете создать этот тип отношений между ними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...