几个问题。

几个问题。

  1. 没搞明白一对多和一对一有什么本质区别?

  2. 而且这一对多好像和关联查询也没什么关系, 查询是videoFile,条件也是videoFile的。

http://img1.sycdn.imooc.com//climg/5d024e500001519710210110.jpg
http://img1.sycdn.imooc.com//climg/5d024ee8000123ec09150196.jpg

这两者好像没什么区别?也没用到关联的操作啊

http://img1.sycdn.imooc.com//climg/5d0254480001297310690174.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,

    1. 在thinkPHP中一对一与一对多的区别就是在model中调用方法不一致(一张表与另一张表的关系,只能是一种关系一对一或者是一对多,两者关系不能共存。)。

<?php
namespace app\index\model;
use think\Model;
class Video extends Model
{
    // 一对一
    public function videoFile()
    {
        return $this->hasOne('VideoFile');
    }
    // 一对多
    public function videoFiles()
    {
         return $this->hasMany('VideoFile');
    }
}
?>

      2. 一对一可以理解成人与身份证号的关系,每个人只能有一个身份证号,一个人不可能有多个身份证号,就是一对一(一个物品链接另一个物品)。一对多可以理解为购物时的订单。在淘宝上一个用户可以有多个订单,一个订单不可能有多个用户,这就是一对多(一个物品链接多个物品)。

     3. 是的,一对多调用的方法是hasMany(),需要在model中修改。thinkPHP中的一些系统函数,老师没有具体讲解,同学可以查看thinkPHP的手册进行进一步的了解(https://www.kancloud.cn/manual/thinkphp5/142358  )。

祝学习愉快!


  • 雨之赞歌 提问者 #1
    那么在数据表里,1对1 是一张表对应一张表,还是一张表的id对应关联表的一个字段? 一对多是 一张表对应多张表,还是一张表的id对应另一张表的多个字段??
    2019-06-14 10:25:52
  • 好帮手慕小尤 回复 提问者 雨之赞歌 #2
    同学你好,一对一是一个用户id连接一个身份证id(一张用户表关联一个身份表)。而一对多是一个用户id连接多条订单id(一张用户表关联一张订单表),不是多个字段与多张表哦!祝学习愉快!
    2019-06-14 10:34:30
提问者 雨之赞歌 2019-06-13 22:32:28

4. 还有什么叫一对一,什么叫一对多,请老师说通俗详细点,视频说的太少了,这一段我已经卡一天了都没彻底搞懂!

提问者 雨之赞歌 2019-06-13 21:55:19

3. 一对多是不是应该改成这样定义?为什么老师没说?
http://img1.sycdn.imooc.com//climg/5d0255c30001bcca06390273.jpg

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师