遠程一對多

遠程一對多關聯用于定義有跨表的一對多關系,例如:

  • 每個城市有多個用戶
  • 每個用戶有多個話題
  • 城市和話題之間并無關聯

關聯定義

就可以直接通過遠程一對多關聯獲取每個城市的多個話題,City模型定義如下:

<?php
namespace app\index\model;

use think\Model;

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

遠程一對多關聯,需要同時存在TopicUser模型。

hasManyThrough方法的參數如下:

hasManyThrough('關聯模型名','中間模型名','外鍵名','中間模型關聯鍵名','當前模型主鍵名',['模型別名定義']);

關聯查詢

我們可以通過下面的方式獲取關聯數據

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

文檔
目錄

深色
模式

切換
寬度