2016-03-28 14 views
1

私はAPIを開発していますが、私は(多対多)の関係を作成し、私はエラーQueryException in Connection.php line 669にエラーを取得していますindex機能で表示したいときは言う:Laravel 5.2 QueryException 669

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'CTL_Tags.id' in 'on clause' (SQL: select `CTL_Tags`.*, `CTL_Resource_has_Tags`.`idResource` as `pivot_idResource`, `CTL_Resource_has_Tags`.`idTag` as `pivot_idTag` from `CTL_Tags` inner join `CTL_Resource_has_Tags` on `CTL_Tags`.`id` = `CTL_Resource_has_Tags`.`idTag` where `CTL_Resource_has_Tags`.`idResource` is null) 

私はそのテーブルの私のID名がidTagあるとき、それはCTL_Tags表にidを探しているので、私のエラーは私のモデルであると考えています。

これは私のCTL_Resourceモデル

<?php 

namespace Knotion; 

use Illuminate\Database\Eloquent\Model; 

class CTL_Resource extends Model { 
    public $timestamps = false; 

    protected $table = "CTL_Resource"; 

    protected $hidden = [ 
     'coachVisibility', 'thumbnail', 'tags', 'relatedTo', 
     'studentVisibility', 'isHTML','studentIndex', 'coachIndex', 
     'isURL', 'source', 'path', 'status', 'updateTime', 'isfolder', 
     'parentResource', 'idModifierUser' 
    ]; 

    protected $fillable = ['idResourceType','productionKey', 'tags', 'idCreatorUser', 'idModifierUser', 'idCreationCountry', 'title', 'description', 'URL', 'fileName', 'extension', 'quicktag', 'minimumAge', 'maximumAge', 'productionKey']; 

    public function creatorUser() { 
     return $this->belongsTo('Knotion\OPR_User', 'idCreatorUser'); 
    } 
    public function creationCountry() { 
     return $this->belongsTo('Knotion\CTL_Country', 'idCreationCountry'); 
    } 
    public function resourceType() { 
     return $this->belongsTo('Knotion\CTL_ResourceType', 'idResourceType'); 
    } 
    public function quickTags() { 
     return $this->belongsToMany('Knotion\CTL_QuickTag', 'CTL_Resource_has_QuickTags', 'idResource', 'idQuickTag'); 
    } 
    public function tags() { 
     return $this->belongsToMany('Knotion\CTL_Tag','CTL_Resource_has_Tags', 'idResource', 'idTag'); 
    } 
    public function relatedTo() { 
     return $this->belongsToMany('Knotion\CTL_RelatedTo', 'CTL_Resource_has_RelatedTo', 'idResource', 'idRelatedTo'); 
    } 

} 

であると私はあなたに関係

<?php 

namespace Knotion; 

use Illuminate\Database\Eloquent\Model; 

class CTL_QuickTag extends Model { 
    protected $table = "CTL_QuickTags"; 
    protected $fillable = ['name']; 
    protected $hidden = ['status', 'createTime', 'updateTime']; 

    public function resources() { 
     return $this->belongsToMany('Knotion\CTL_Resource', 'CTL_Resource_has_QuickTags', 'idResource', 'idQuickTag'); 
    } 
} 

の1のコードが表示され、これは私が「

<?php 

namespace Knotion\Http\Controllers; 

use Illuminate\Http\Request; 
use Knotion\Http\Requests; 
use Knotion\Http\Requests\ResourcesRequest; 

use Knotion\CTL_Resource; 
use Knotion\CTL_Tag; 
use Knotion\CTL_QuickTag; 
use Knotion\CTL_RelatedTo; 
use Knotion\CTL_ResourceType; 


class ResourcesController extends Controller { 

    public function index(Request $request) { 

     $resources = CTL_Resource::paginate(10); 

     $resources->each(function($resources) { 
      $resources->tags; 
      $resources->quickTags; 
      $resources->relatedTo; 
     }); 

     return response()->json(
      $resources 
    ); 

私のコントローラであります誰でも私を助けることができてとても感謝しています。どうもありがとうございます。

答えて

1
+0

は先生ありがとうござい正しい列名を指定して、モデル内の

$primaryKey 

を定義しようとすると、それは働きました!エラーは消えましたが、関係を見ることができません。空の配列に見えますが、別の問題だと思います。どうもありがとうございます。 :) –