dpr26232 2018-06-06 15:08
浏览 9

多对多| 查看错误

I have a many to many relationship. My main object is a members table and these members can have multiple interests as a dropdown selection. A interest can also have multiple members.

When I test my create view I get the following error:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'tomcrud.interest_member' doesn't exist (SQL: select interests.*, interest_member.member_id as pivot_member_id, interest_member.interest_id as pivot_interest_id from interests inner join interest_member on interests.id = interest_member.interest_id where interest_member.member_id is null) (View: G:\laragon\www\tomcrudesources\views\members\partials\member_form.blade.php) (View: G:\laragon\www\tomcrudesources\views\members\partials\member_form.blade.php)

If I read laravel docs correctly, the interest_member table should be created automatically with all the relevant keys. I can't see such a table in my schema. I can however see my members and interests tables.

I believe my Models are configured correctly:

Member Model:

class Member extends Model
{
    public function interests()
    {
        return $this->belongsToMany('App\Interest', 'interest_member');
    }
}

Interest Model:

class Interest extends Model
{
    public function members()
    {
        return $this->belongsToMany('App\Member');
    }
}

My MemberController create() function:

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);
    }

The multi select dropdown portion of my member_form blade:

<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条回答 默认 最新

  • dousi9215 2018-06-06 15:39
    关注

    You need to create a interest_member table which can have 3 columns(id, member_id, interest_id). Then you can create this type of relation between them.

    评论

报告相同问题?

悬赏问题

  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?