• 技术文章 >php框架 >ThinkPHP

    详解ThinkPHP5下has_one和belongs_to的区别

    藏色散人藏色散人2020-11-24 15:47:56转载683
    下面由thinkphp框架教程栏目给大家介绍ThinkPHP5下has_one和belongs_to的区别,希望对需要的朋友有所帮助!

    ThinkPHP5下has_one和belongs_to的区别

    在查阅了相关Tp5开发文档和相关博客后,总结出关于belongsTo和hasOne的区别,主要是看你是在哪一个model(模型)中编写这个关联关系,父关联对象就是在父关联model(本文是在Products的model类)下编写的关联模型。下面是两种关联的使用时机。


    has_one(或has_many):外键在子关联对象中

    例子:

    //父关联对象表
    Products{
     id
     product_name
    }
    //子关联对象表
    Image{
     image_id
     img_name
     product_id    //foreign key
    }
    在TP5中的写法为:
    //hasOne方法的参数包括:
    //hasOne('关联模型名','外键名','主键名',['模型别名定义'],'join类型');
    //默认的join类型为INNER
    //写在Products的model类中
    public function Img(){
      $this->hasOne('Image','product_id','id');
    }

    belongs_to:外键在你父联对象中

    //父关联对象表:
    Product{
     product_id
     img_id    //foreignkey
     product_name
    }
    //子关联对象表
    Image{
     id      
     img_name
    }
    在TP5中的写法为:
    //belongsTo方法的参数包括:
    //belongsTo(‘关联模型名’,‘外键名’,‘关联表主键名’,[‘模型别名定义’],‘join类型’);
    //默认的join类型为INNER
    //写在Products的model类中
    public function Img(){
    $this->belongsTo('Image','img_id','id');
    }

    以上就是详解ThinkPHP5下has_one和belongs_to的区别的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:ThinkPHP5
    上一篇:学习:ThinkPHP部署目录 下一篇:解决“tp5.1修改了代码,要过60秒才刷新”问题
    大前端线上培训班

    相关文章推荐

    • thinkphp5集成Swagger-PHP(排坑)• thinkphp5.0如何调用ajax无刷新加载数据• thinkphp5怎么隐藏index.php入口文件?• thinkphp5.1和php、vue.js实现前后端分离和交互

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网