显示外键

时间:2019-02-11 13:40:36

标签: php laravel

我有2个表,第一个是具有3个字段(id_club,name_club,type_sport_club)的 clubs ,第二个表是具有3个字段(id_membre,name_membre, fk_club)。

在我的文件夹membres index.blade.php中,我收到一条错误消息

  

SQLSTATE [42S22]:找不到列:1054 where子句中的冠军'clubs.id'未知(SQL:从clubs中选择*,其中clubsid = 1限制1 )“

是我忘记了什么吗?

<div class="px-content">
    <div class="page-header">
      <div class="row">
        <div class="col-md-4 text-xs-center text-md-left text-nowrap">
          <h1><i class="px-nav-icon ion-android-apps"></i>Liste des enregistrements</h1>
        </div>
        <hr class="page-wide-block visible-xs visible-sm">
        <!-- Spacer -->
        <div class="m-b-2 visible-xs visible-sm clearfix"></div>
      </div>
    </div>
    <div class="row">
      <div class="panel">
        <div class="panel-body">
          <div class="table-responsive">
            <table class="table">
              <a class="btn btn-sm btn-success" href="{{ route('membres.create') }}">Ajouter</a>
              <thead>
                <tr>
                  <th>Name</th>
                  <th>Club</th>
                </tr>
                </thead>
                @foreach($membres as $membre)
                <tr>
                   <td> {{$membre->name_membre}}</td>
                   <td> {{$membre->club->name_club}}</td> 
                   <td>
                     <form method="POST" action="{{ route('membres.destroy', $membre) }} ">
                    <a class="btn btn-sm btn-warning" href="{{route('membres.edit',$membre->id_membre)}}">Editer</a>
                    @csrf
                    @method('DELETE')
                    <button type="submit" class="btn btn-sm btn-danger">Deleter</button>
                    </form>
                    </td>
                </tr>
                @endforeach
            </table>
          </div>
        </div>
      </div>
    </div>
{!! $membres->links() !!}
  </div>
@endsection

有关信息

public function up()
     {
         Schema::create('membres', function (Blueprint $table) {
             $table->increments('id_membre');
             $table->string('name_membre');
             $table->integer('fk_club')->unsigned();
             $table->foreign('fk_club')->references('id_club')->on('clubs');
             $table->timestamps();
         });
     }

谢谢

1 个答案:

答案 0 :(得分:1)

我很确定在Membre模型上添加关系时您没有传递正确的键。它应该类似于:

public function club()
{
    return $this->belongsTo('App\Club', 'fk_club', 'id_club');
}

此外,您必须将与Club模型的关系更新为:

public function membres()
{
    return $this->hasMany('App\Membres', 'fk_club', 'id_club');
}