2
MYSQL遞歸循環時嘗試提取模型
#advertisements
`id` -> primary key
`title` -> varchar(100)
#advertisementsTags
id
- >主鍵 tag
- > VARCHAR(40)
#advertisements_has_tags
`tag_id`
`ad_id`
##Foreign keys
fk_tag_id for column `tag_id` points to `AdvertisementsTags`.`id`
fk_ad_id for column `ad_id` points to `Advertisements`.`id`
AdvertisementsModel
public function tags(){
return $this->belongsToMany('App\Models\Advertisements\AdvertisementTagsModel','advertisement_has_tags','fk_ad_id','id');
}
AdvertisementTagsModel
public function advertisements(){
return $this->belongsToMany('App\Models\Advertisements\AdvertisementsModel','advertisement_has_tags','fk_tag_id','id');
}
AdvertisementsController
public function index(){
$finder = AdvertisementsModel::find(1);
$tags=$finder->tags();
echo '<pre>';
var_dump($tags);
echo '</pre>';
}
當我進入/advertisements
航線它調用的AdvertisementsController
的index()
它落入一個遞歸循環,我只是不能設法正確聲明這種關係廣告和標籤之間。
調用$tags()->get()
之後得到了以下sql錯誤,不知道它是如何構建該查詢的。爲什麼它建立as
pivot_fk_ad_id``
SQLSTATE[42S22]: Column not found: 1054 Unknown column
'advertisement_has_tags.fk_ad_id' in 'field list' (SQL: select
`advertisement_tags`.*, `advertisement_has_tags`.`fk_ad_id` as `pivot_fk_ad_id`,
`advertisement_has_tags`.`id` as `pivot_id` from `advertisement_tags` inner
join `advertisement_has_tags` on `advertisement_tags`.`id` =
`advertisement_has_tags`.`id` where `advertisement_has_tags`.`fk_ad_id` = 1)
有什麼想法?
你確定循環是因爲關係嗎?也許這是你的路線或甚至htaccess的東西? – amosmos
當我只是使用'var_dump('hello world');'它傾銷'hello world'或許它的'var_dump'試圖遍歷結果? – Gntem
你的mySQL表示法讓我困惑了一下。什麼是字段名稱?也許你需要使用'tag_id'而不是'fk_tag_id'和'ad_id'而不是'fk_ad_id'? –