# (二)一对多关联CURD
### 一对多关联:
操作一张表,此表外的至少两张表会有同步的改变,此操作为删除操作跟修改操作! 新增操作是建立在前面两张表已经关联好的情况下,第三张表按照id或者其他索引字段的新增操作,并与前面的表的对应的那条数据建立起了捆绑关系! 如果仅仅是在一个表单里面新增内容,三张表都对应的变化,只需要在一对一关联里面再加一个hasone(),里面写上第三张表的模型就可以了!
- 在一对一关联的基础上再新建一张表:
每一个人都可以有几个宠物!
```
CREATE TABLE IF NOT EXISTS `pet` (
`id` int(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`petname` varchar(255) NOT NULL,
`status` tinyint(1) NOT NULL,
`user_id` int(6) UNSIGNED NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
```
- 在一对一关联的基础上,User.php只需要加一条
```
namespace app\index\model;
use think\Model;
class User extends Model
{
// 定义自动完成的属性
protected $insert = ['status' => 1];
// 定义关联方法
public function profile()
{
return $this->hasOne('Profile');
}
// 定义关联
public function pets()
{
return $this->hasMany('Pet');
}
}
```
- 新建一个模型Pet.php
```
namespace app\index\model;
use think\Model;
class Pet extends Model
{
// 定义自动完成的属性
protected $insert = ['status' => 1];
}
```
到这里,就是单独写一个提交表单!将第三张表宠物的内容写进前两张表中!这里比较形象一点的说法就是宠物找主人,并回家!找到主人然后被主人牵回家!
思路:在一对一关联的信息中的每条后面加上一个新增宠物按钮!点击新增就跳到另一个表单页面! 到这里基本上一对多关联就知道是什么回事了!