当前位置: 首页 > news >正文

成都网站建设推广港哥网站 盈利模式

成都网站建设推广港哥,网站 盈利模式,铁岭市做网站,韶关住房和城乡建设局网站【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客

《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书

使用VS Code开发ThinkPHP项目-CSDN博客

编程与应用开发_夏天又到了的博客-CSDN博客

多对多关联属于比较复杂的关联,需要借助一个中间表实现,在模型中使用belongsToMany定义。在介绍ThinkPHP 8的多对多语法之间,我们先来看一个例子,以加深对多对多关联的理解。

比如我们开发一个博客系统,每篇文章可以关联多个标签,每个标签可以关联多篇文章,涉及的数据表如表8-1~表8-3所示。

如果我们需要查询ThinkPHP教程这篇文章关联了哪些标签,可以用文章ID从文章标签关联表获得标签ID列表[1,2],再从标签表查询[1,2]的标签得到PHP和ThinkPHP。

查询PHP这个标签关联了哪些文章也是类似的,先用标签ID从文章标签关联表获得文章ID列表[1,2],再从文章表查询到两篇文章。

下面是文章标签多对多关联的ThinkPHP 8模型示例。首先根据上面3个表格创建数据表,SQL语句如下:

CREATE TABLE `article` (`aid` int NOT NULL AUTO_INCREMENT,`title` varchar(45) NOT NULL,`content` varchar(45) NOT NULL,PRIMARY KEY (`aid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
CREATE TABLE `tag` (`tid` int NOT NULL AUTO_INCREMENT,`tname` varchar(45) COLLATE utf8mb3_unicode_ci NOT NULL,PRIMARY KEY (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
CREATE TABLE `articletag` (`aid` int NOT NULL,`tid` int NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;

再使用MySQL Workbench工具,按表8-1~表8-3给出的数据手工填充数据表。接下来就可以编写多对多关联示例代码了。

1. 文章表

文章表示例如下:

<?php
namespace app\model;use think\Model;class ArticleModel extends Model 
{protected $pk = 'aid'; // 一定要声明主键  protected $table = 'article';// 设置字段信息protected $schema = ['aid'			=> 'int','title'		=> 'string','content'	=> 'string',];public function tags(){return $this->belongsToMany(TagModel::class, ArticleTagModel::class ,foreignKey:'aid',localKey:'aid');}
}
2. 标签表

标签表示例如下:

<?php
namespace app\model;use think\Model;class TagModel extends Model 
{protected $pk = 'tid'; // 一定要声明主键 protected $table = 'tag';// 设置字段信息protected $schema = ['tid'			=> 'int','tname'	=> 'string',];public function articles(){return $this->belongsToMany(ArticleModel::class, ArticleTagModel::class,foreignKey:'tid',localKey:'tid' );}
}
3. 文章标签关联表

需要注意的是,中间表模型需要继承think\model\Pivot,而不是使用默认的think\Model,示例如下:

<?php
namespace app\model;
//中间表模型需要继承think\model\Pivot
use think\model\Pivot;class ArticleTagModel extends Pivot 
{    protected $table = 'articletag';// 设置字段信息protected $schema = ['aid'	=> 'int','tid'	=> 'int',];
}
4. 关联查询

关联查询示例如下:

use think\Model;
use app\model\ArticleModel;
use app\model\TagModel;class Article 
{public function many2many(){$article = ArticleModel::with(['tags'])->find(1);//$article = ArticleModel::with(['tags'])->select();//print_r(  $article);//print_r(  $article->tags  );foreach($article->tags as $tag) {echo $tag->tname, PHP_EOL;}}
}

上面3个模型1个控制器完成后,运行服务器,在浏览器中访问http://localthost:8000/article/ many2many,可以关联查询出aid为1的文章,以及其标签有哪些。

http://www.yayakq.cn/news/679330/

相关文章:

  • 如何做微信商城网站农机局网站建设方案
  • 需要上传视频的网站网页设计作业保护动物
  • 青岛黄岛区建设工程管理局网站网站开发 荣誉资质
  • wordpress开启多站点好处零基础学网站建设 知乎
  • 免费化妆品网站模板下载24小时在线地址失效域名
  • 免费做网站视频全功能多国语言企业网站
  • 微信网站开发多少钱企业邮箱地址怎么填
  • 北京网站排名推广关键词优化排名软件推荐
  • 长春做网站哪个公司好上海建设工程管理网站
  • 2019做网站电商网站设计思想
  • 松原市城乡建设局网站wordpress竞争
  • 网站建设费用都包括什么科目手机网站预览
  • 巫溪集团网站建设网站建设合同细节
  • 如何做网站内页排名企业网站开发报价单
  • 网站建设的一些知识做慧聪网价格网站价格
  • 免费网站建设总部wordpress nickname
  • 国泰君安官方网站建设集团网站建设 教学大纲
  • 新乡手机网站建设电话长春精神文明建设网站
  • 网站建设都包括汕头seo托管
  • 剑三代售网站怎么做免保证金入驻电商平台
  • 微信清粉网站开发微信小程序服务器费用
  • 北京做网站制作的公司微信小程序开发步骤图
  • 柳州住房和城乡建设厅网站网站设计就业怎么样
  • 网站引导页动态效果怎么做的咸宁网站制作公司
  • 深圳网站的建设酒泉地网站推广
  • 济南市高新技术官方网站开发区网站备案在哪个网
  • 新艾尚网站建设推广西安百度公司电话
  • 银川网站建设哪家价格低wordpress地图在哪
  • 网站建设与发布怎么做网页作业
  • 贵港公司做网站三位效果网站模版