2016-03-28 99 views
1

我開發一個API,但是當我創建的關係(多對多),並希望在index函數來顯示我收到一個錯誤QueryException in Connection.php line 669錯誤說:Laravel 5.2 QueryException在Connection.php線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) 

我相信我的錯誤是在我的模型,因爲它在CTL_Tags表尋找id時,在該表中我的ID名稱爲idTag

這是我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'); 
    } 
} 

之一的代碼,這是我的控制器

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

我我會很感激誰能幫助我。非常感謝。

回答