上面将代码生成之后基础菜单以及功能已经建立,下面针对文章,文章分类进行细化,代码生成器重点是基础搭建,需要配合业务进行处理
![](https://img.kancloud.cn/6c/09/6c09aea82fbc1295972c9b17a1ec2e30_1920x881.png)
![](https://img.kancloud.cn/6e/25/6e25346c69e9465b3541bcaa3b2c7f20_1918x896.png)
针对关联数据模型目前代码生成器尚未完成,需要手动开发,下面说明一下文章关联文章分类开发细节
#### **首先文章列表里面文章分类属于选择框,由于无法动态查询数据,先要配置文章分类属于下拉框,下拉选择一个数据字典(具体不做要求)。**
![](https://img.kancloud.cn/97/71/9771a09776c85c86e6a468a4c5fee5c8_1920x1020.png)
做好文章分类的关联模型,关联之后系统model层会生成一对一关联的方法
![](https://img.kancloud.cn/f7/89/f789a9a7e34e85e237adc78c08e80aed_1902x724.png)
```
public function articleCategory()
{
return $this->hasOne(\addon\lgs_cms\app\model\article\ArticleCategory::class, 'category_id', 'category_id');
}
```
查看文章列表,文章分类的搜索,显示的是数据字典对应的数据
![](https://img.kancloud.cn/62/89/62896f3903f18f740bb439860d51dde5_1920x799.png)
下面针对这里的数据进行修改
后台接口实现对应方法,包括service书写方法,控制器调用,路由定义
![](https://img.kancloud.cn/87/1b/871b02108f94219ee059cfc1c553a243_1920x634.png)
![](https://img.kancloud.cn/6a/f7/6af73fac7ca004108300ec6f9d12d9a5_1919x937.png)
![](https://img.kancloud.cn/d1/0d/d10d0ee474bef1739c64e7842d727b26_1920x946.png)
这样article.ts以及article.vue就可以调用了,注意调用数据格式
![](https://img.kancloud.cn/a6/96/a696da9b5f42779b0ebbacfe78ff82de_1862x872.png)
![](https://img.kancloud.cn/d9/6a/d96af59d7f416ec9ef95bc836a8a3a27_1879x874.png)
![](https://img.kancloud.cn/c3/f6/c3f63abd47cdef96d2f6bb3948b20949_1920x946.png)
**文章列表中查询对应文章分类的数据需要专门的关联查询
首先ArticleService要在分页列表中进行查询,使用with方法,具体书写方法查看thinkphp手册**
![](https://img.kancloud.cn/8a/e7/8ae782827dab3a7a8f90e71d9eff0bd9_1920x935.png)
```
public function getPage(array $where = [])
{
$field = 'id,category_id,site_id,title,intro,summary,image,author,content,visit,visit_virtual,is_show,sort,create_time,update_time,delete_time';
$order = '';
$search_model = $this->model->where([['site_id', '=', $this->site_id]])->withSearch(["category_id","title","create_time"], $where)
->with([
"article_category" => function($query){
$query->field("category_id, name");
},
])
->field($field)->order($order);
$list = $this->pageQuery($search_model);
return $list;
}
```
其次是article.vue页面中展示文章分类,注意数据结构,返回列表是对应list下面article_category下的name
![](https://img.kancloud.cn/9f/a7/9fa701cb161f5130493dd9a5ab9ef598_1909x813.png)
文章的添加与编辑同样按照上述方法
![](https://img.kancloud.cn/ec/ef/ecef2baec38677376f7be15ff588b258_1920x1012.png)
![](https://img.kancloud.cn/97/fd/97fd4b45b7962fd0ed6b3dbe238cadf5_1920x997.png)
![](https://img.kancloud.cn/88/4d/884d30f04612c29a6779874d28bfc6ca_1920x963.png)
实现结果如图
![](https://img.kancloud.cn/26/00/26004a00af5e9710e12aeab4359fc743_1920x945.png)
![](https://img.kancloud.cn/ec/b9/ecb9adc656780ef507a0fccdacd0fd2b_1920x778.png)
![](https://img.kancloud.cn/c3/d0/c3d05b7fa2be7e8922744607323db5b0_1920x802.png)