#### 1. 創建數據表 --- **一對一反向關聯使用率很高** **附表關聯主表稱為反向關聯,又稱為相對關聯(tp官方手冊這樣叫)**  ```sql -- 分類表 CREATE TABLE `category` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵id', `name` varchar(255) DEFAULT NULL COMMENT '分類名稱', `sort` int(11) DEFAULT NULL COMMENT '分類排序', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; INSERT INTO `category` VALUES (1, 'Java', 0); INSERT INTO `category` VALUES (2, 'Vue', 0); -- 文章表 CREATE TABLE `article` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `category_id` int(11) DEFAULT '0', `title` varchar(255) DEFAULT NULL, `content` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; INSERT INTO `article` VALUES (1, 0, 'PHP數據類型', '文章內容01'); INSERT INTO `article` VALUES (2, 1, 'Java常量池', '文章內容02'); INSERT INTO `article` VALUES (3, 2, 'Vue Cli 4 引入圖片地址', '文章內容03'); ``` #### 2. 文章模型定義一對一相對關聯方法 --- ```php public function category() { /** * belongsTo('關聯模型', '當前模型外鍵', '關聯模型主鍵'); * * 第一個參數 * app\model\Category 關聯的模型類名(分類表模型) * * 第二個參數 * category_id 外鍵字段,默認的外鍵名規則是關聯模型名+_id(文章表外鍵字段) * * 第三個參數 * id 關聯模型主鍵,默認是關聯模型的 $pk 值(分類表主鍵字段) */ return $this->belongsTo(Category::class, 'category_id', 'id'); } ```  #### 3. belongsTo() 也支持額外的方法 `同 hasOne()` --- ```php public function category() { /** * belongsTo('關聯模型', '當前模型外鍵', '關聯主鍵'); */ return $this->belongsTo(Category::class, 'category_id', 'id')->bind([ 'name', 'sort' ]); } ``` 