遠(yuǎn)程一對(duì)多

遠(yuǎn)程一對(duì)多關(guān)聯(lián)用于定義有跨表的一對(duì)多關(guān)系,例如:

  • 每個(gè)城市有多個(gè)用戶
  • 每個(gè)用戶有多個(gè)話題
  • 城市和話題之間并無關(guān)聯(lián)

關(guān)聯(lián)定義

就可以直接通過遠(yuǎn)程一對(duì)多關(guān)聯(lián)獲取每個(gè)城市的多個(gè)話題,City模型定義如下:

<?php
namespace app\index\model;

use think\Model;

class City extends Model 
{
    public function topics()
    {
        return $this->hasManyThrough('Topic','User');
    }
}

遠(yuǎn)程一對(duì)多關(guān)聯(lián),需要同時(shí)存在TopicUser模型。

hasManyThrough方法的參數(shù)如下:

hasManyThrough('關(guān)聯(lián)模型名','中間模型名','外鍵名','中間模型關(guān)聯(lián)鍵名','當(dāng)前模型主鍵名',['模型別名定義']);

關(guān)聯(lián)查詢

我們可以通過下面的方式獲取關(guān)聯(lián)數(shù)據(jù)

$city = City::get(1);
// 獲取同城的所有話題
dump($city->topics);
// 也可以進(jìn)行條件搜索
dump($city->topics()->where('topic.status',1)->select());
文檔最后更新時(shí)間:2018-06-09 15:34:42

文檔
目錄

深色
模式

切換
寬度