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

企业查询平台有哪些seo优化教程培训

企业查询平台有哪些,seo优化教程培训,熊猫办公ppt模板下载,建筑工地网站有哪些用一对多关联的前提 多的一方的数据库表有一的一方数据库表的外键。 举例,用户获取自己的所有文章 数据表结构如下 // 用户表 useruser_id - integer // 用户主键name - varchar // 用户名称// 文章表 articlearticle_id - integer // 文章主键title - varchar …

用一对多关联的前提

多的一方的数据库表有一的一方数据库表的外键。

举例,用户获取自己的所有文章

数据表结构如下

// 用户表
useruser_id - integer  // 用户主键name - varchar // 用户名称// 文章表
articlearticle_id - integer // 文章主键title - varchar // 文章名标题content - text // 文章内容user_id - integer // 作者 user_id

多的一方(文章表)存在一的一方(用户表)的外键 user_id 。

一对多关联定义

用户表 user 模型:

<?phpnamespace app\api\model;class User extends Base
{// 不是默认主键名称记得定义 pk 属性protected $pk = 'user_id';// 获取用户详情以及用户的所有文章public static function getDetail(int $user_id){return self::get($user_id, 'articles');}// 一对多获取用户的文章public function articles(){// 完整写法return $this->hasMany('Article', 'user_id', 'user_id');}
}

hasMany 方法参数如下:

hasMany('关联模型', '关联模型外键', '当前模型主键');

除了关联模型外,其它参数都是可选。

  • 关联模型(必须):模型名或者模型类名
  • 关联模型外键:关联模型外键,默认的外键名规则是当前模型名+_id
  • 当前模型主键:当前模型主键,一般会自动获取也可以指定传入

实例演示

shop_article 表

 shop_user 表

演示1

获取 user_id 为 1 的用户详情以及用户的所有文章

用户 User 控制器

<?phpnamespace app\api\controller;use app\api\model\User as UserModel;class User extends Base
{public function detail(){$user_id = 1;$detail = UserModel::getDetail($user_id);echo '<pre>';var_dump($detail);echo '</pre>';}
}

用户表 User 模型

<?phpnamespace app\api\model;class User extends Base
{// 不是默认主键名称记得定义 pk 属性protected $pk = 'user_id';// 获取用户详情以及用户的所有文章public static function getDetail(int $user_id){return self::get($user_id, 'articles');}// 一对多获取用户的文章public function articles(){// 完整写法return $this->hasMany('Article', 'user_id', 'user_id');}
}

user 控制器  detail 方法输出

object(app\api\model\User)#41 (2) {["data"]=>array(4) {["user_id"]=>int(1)["name"]=>string(5) "admin"["create_time"]=>int(1688452509)["update_time"]=>int(1688452509)}["relation"]=>array(1) {["articles"]=>object(think\model\Collection)#50 (1) {["items":protected]=>array(2) {[0]=>object(app\api\model\Article)#45 (2) {["data"]=>array(6) {["article_id"]=>int(1)["title"]=>string(12) "测试标题"["content"]=>string(12) "测试内容"["user_id"]=>int(1)["create_time"]=>int(1689401566)["update_time"]=>int(1689401566)}["relation"]=>array(0) {}}[1]=>object(app\api\model\Article)#46 (2) {["data"]=>array(6) {["article_id"]=>int(2)["title"]=>string(13) "测试标题1"["content"]=>string(13) "测试内容1"["user_id"]=>int(1)["create_time"]=>int(1689498967)["update_time"]=>int(1689498967)}["relation"]=>array(0) {}}}}}
}

单条查询输出的是 User 模型实例,User 模型实例的 relation 属性(关联数组)保存着关联模型,在该关联数组中,关联方法名 articles 作为键名,关联查询结果作为键值(对一关联查询返回模型实例,对多关联查询返回结果集对象)。

使用的 SQL 如下

SELECT * FROM `shop_user` WHERE `user_id` = 1 LIMIT 1SELECT * FROM `shop_article` WHERE `user_id` = 1

获取当前用户的文章,访问 articles(关联方法名) 属性即可,如下

<?phpnamespace app\api\controller;use app\api\model\User as UserModel;class User extends Base
{public function detail(){$user_id = 1;$detail = UserModel::getDetail($user_id);echo '<pre>';var_dump($detail->articles);echo '</pre>';}
}

输出如下

object(think\model\Collection)#50 (1) {["items":protected]=>array(2) {[0]=>object(app\api\model\Article)#45 (2) {["data"]=>array(6) {["article_id"]=>int(1)["title"]=>string(12) "测试标题"["content"]=>string(12) "测试内容"["user_id"]=>int(1)["create_time"]=>int(1689401566)["update_time"]=>int(1689401566)}["relation"]=>array(0) {}}[1]=>object(app\api\model\Article)#46 (2) {["data"]=>array(6) {["article_id"]=>int(2)["title"]=>string(13) "测试标题1"["content"]=>string(13) "测试内容1"["user_id"]=>int(1)["create_time"]=>int(1689498967)["update_time"]=>int(1689498967)}["relation"]=>array(0) {}}}
}

演示2

获取所有用户的用户详情以及用户的所有文章

用户 User 控制器

<?phpnamespace app\api\controller;use app\api\model\User as UserModel;class User extends Base
{// 获取所有用户的用户详情以及用户的所有文章public function list(){$list = UserModel::getList();echo '<pre>';var_dump($list);echo '</pre>';}
}

用户表 User 模型

<?phpnamespace app\api\model;class User extends Base
{protected $pk = 'user_id';// 获取所有用户的用户详情以及用户的所有文章public static function getList(){return self::with('articles')->select();}// 一对多获取用户的文章public function articles(){// 完整写法return $this->hasMany('Article', 'user_id', 'user_id');}
}

user 控制器  list 方法输出

object(think\model\Collection)#44 (1) {["items":protected]=>array(3) {[0]=>object(app\api\model\User)#41 (2) {["data"]=>array(4) {["user_id"]=>int(1)["name"]=>string(5) "admin"["create_time"]=>int(1688452509)["update_time"]=>int(1688452509)}["relation"]=>array(1) {["articles"]=>object(think\model\Collection)#52 (1) {["items":protected]=>array(2) {[0]=>object(app\api\model\Article)#47 (2) {["data"]=>array(6) {["article_id"]=>int(1)["title"]=>string(12) "测试标题"["content"]=>string(12) "测试内容"["user_id"]=>int(1)["create_time"]=>int(1689401566)["update_time"]=>int(1689401566)}["relation"]=>array(0) {}}[1]=>object(app\api\model\Article)#48 (2) {["data"]=>array(6) {["article_id"]=>int(2)["title"]=>string(13) "测试标题1"["content"]=>string(13) "测试内容1"["user_id"]=>int(1)["create_time"]=>int(1689498967)["update_time"]=>int(1689498967)}["relation"]=>array(0) {}}}}}}[1]=>object(app\api\model\User)#42 (2) {["data"]=>array(4) {["user_id"]=>int(2)["name"]=>string(0) ""["create_time"]=>int(1689732287)["update_time"]=>int(1689732287)}["relation"]=>array(1) {["articles"]=>object(think\model\Collection)#53 (1) {["items":protected]=>array(0) {}}}}[2]=>object(app\api\model\User)#43 (2) {["data"]=>array(4) {["user_id"]=>int(3)["name"]=>string(6) "测试"["create_time"]=>int(1690355199)["update_time"]=>int(1690355199)}["relation"]=>array(1) {["articles"]=>object(think\model\Collection)#54 (1) {["items":protected]=>array(0) {}}}}}
}

多条查询返回的是 Collection(结果集)对象,Collection 对象的 item 属性保存着所有用户模型实例,每个用户模型实例的 relation 属性 (关联数组)属性保存着关联模型实例,关联方法名 articles 作为键名,结果集对象作为键值,结果集对象的 items 属性(索引数组)保存着关联查询结果。

使用的 SQL 如下

SELECT * FROM `shop_user`SELECT * FROM `shop_article` WHERE `user_id` IN (1,2,3)

获取每个用户的所有文章,访问 articles(关联方法名) 属性即可,如下

<?phpnamespace app\api\controller;use app\api\model\User as UserModel;class User extends Base
{public function list(){$list = UserModel::getList();foreach ($list as $user) {echo '<pre>';var_dump($user->articles);echo '</pre>';}}}

​​​​​​​

user 控制器 list 方法输出如下

object(think\model\Collection)#52 (1) {["items":protected]=>array(2) {[0]=>object(app\api\model\Article)#47 (2) {["data"]=>array(6) {["article_id"]=>int(1)["title"]=>string(12) "测试标题"["content"]=>string(12) "测试内容"["user_id"]=>int(1)["create_time"]=>int(1689401566)["update_time"]=>int(1689401566)}["relation"]=>array(0) {}}[1]=>object(app\api\model\Article)#48 (2) {["data"]=>array(6) {["article_id"]=>int(2)["title"]=>string(13) "测试标题1"["content"]=>string(13) "测试内容1"["user_id"]=>int(1)["create_time"]=>int(1689498967)["update_time"]=>int(1689498967)}["relation"]=>array(0) {}}}
}
object(think\model\Collection)#53 (1) {["items":protected]=>array(0) {}
}
object(think\model\Collection)#54 (1) {["items":protected]=>array(0) {}
}

如果觉得作者写得好,请帮我点个赞,谢谢。

http://www.rdtb.cn/news/14851.html

相关文章:

  • 怎么做网站美工阿拉营销网站
  • 怎么做旅游网站推广蜘蛛seo超级外链工具
  • 西安政府做网站seo课程培训
  • 开拓网站建设公司每日一则新闻摘抄
  • 北京网站制作哪家好seo报告
  • 做网站建设的公司2345网址导航浏览器
  • 大型网站服务器多少钱网络推广项目
  • 公司两学一做网站站长之家ip地址归属查询
  • 网站开发 天津大庆网络推广
  • 东城做企业网站多少钱推广策略怎么写
  • 做地方网站能赚钱吗彼亿营销
  • phpcmsv9手机网站开发网络推广哪家做得比较好
  • 网站建设时送的ppt方案seo网站培训优化怎么做
  • 计算机网络技术就业率影视网站怎么优化关键词排名
  • 重庆装修公司网站建设北京网站优化方案
  • 长沙哪里做网站好站外推广
  • 做视频网站都需要什么软件优化生育政策
  • 我的网站要换新域名如何做域名查询访问
  • 如何对自己做的php网站加密软文营销经典案例200字
  • wordpress 网站积分打赏google官方下载
  • 台州企业网站搭建电话上海最新新闻热点事件
  • 萌兔网站做代销可靠吗广州做seo的公司
  • 网站建设详情报价网络服务合同纠纷
  • 建设优化网站网站运营
  • 一家专门做衣服的网站关键时刻
  • 网站设计和建设女生学电子商务后悔了
  • 怎么注册网站个人附近广告公司
  • 微云影视自助建站系统中国局势最新消息今天
  • 青岛外贸网站建设百度关键词自然排名优化公司
  • 手机主页哪个网站好优化营商环境指什么