tp5模型一对一关联hasOne

在一个模型中,新建方法实现外键关联

<?php
namespace app\user\model;

use think\Model;

class GridmanReportLogs extends Model
{
    protected $table = ‘sq_gridman_report_logs‘;
    protected $pk = ‘id‘;
    protected $resultSetType = ‘collection‘;

    public function reportTypeName()
    {
        return $this->hasOne(‘GridmanReportType‘, ‘id‘, ‘report_type_id‘)->bind(‘report_type‘);
    }

    public function user()
    {
        return $this->hasOne(‘Users‘, ‘id‘, ‘user_id‘)->bind(‘name‘);
    }
}
  • hasOne(关联模型,关联模型主键,当前模型外键)
  • bind(‘name‘),将关联模型得name属性绑定到当前模型

通过with关联表使用该方法

$this->gridmanReportLogs->with(‘user‘, ‘LEFT‘)->where(‘user_id‘, $userId)->select();

原文地址:https://www.cnblogs.com/YC-L/p/12640196.html

时间: 2024-10-10 09:58:23

tp5模型一对一关联hasOne的相关文章

TP5模型belongsTo和hasOne的区别

在使用tp5模型的ORM的时候出现belongsTo和hasOne都有表示一对一的关系,但是二者并不相同.以下举例说明两者的区别: 首先有user表 字段 id name password字段 然后有user_address表 id user_id city字段 在User模型中关联user_address表的时候使用hasOne,因为在user表中没有关联两个表的外键 在UserAddress模型中关联user表的时候使用belongsTo,因为在user_address表中有关联两个表的外键

TP5模型belongsTo和hasOne这两个方法的区别

在使用tp5模型的ORM的时候出现belongsTo和hasOne都有表示一对一的关系,但是二者并不相同.以下举例说明两者的区别: 首先有user表 字段 id name password字段 然后有user_address表 id user_id city字段 在User模型中关联user_address表的时候使用 hasOne,因为在user表中没有关联两个表的外键 在UserAddress模型中关联user表的时候使用 belongsTo,因为在user_address表中有关联两个表的

Laravel5.1 模型 --一对一关系

这篇文章主要记录模型的一对一关系,关联关系是Model的一种非常方便的功能. 1 实现一对一关系 1.1 准备工作 首先我们需要创建两张表和对应的两个模型,第一个模型是用户表,第二个模型是账号表. 这里 我们的逻辑是:一个用户信息下只能有一个账号,一个账号只能被一个用户所拥有,这就是一对一关系. 1.1.1 用户信息表 生成模型和迁移文件: php artisan make:model UserInfo -m 编写迁移文件(表规格): public function up() { Schema:

一对一关联

一对一关联 版本 功能调整 5.0.5 增加关联自动写入和删除 5.0.4 增加关联属性绑定到父模型功能 定义 定义一对一关联,例如,一个用户都有一个个人资料,我们定义User模型如下: namespace app\index\model; use think\Model; class User extends Model { public function profile() { return $this->hasOne('Profile'); } } hasOne方法的参数包括: hasOn

04.Hibernate一对一关联

前言:本文主要介绍使用Hibernate映射一对一的关联关系的两种方式:使用外键映射.使用主键映射. 1.数据库表的一对一关联关系 本文根据客户信息表(tb_customer)和地址信息表(tb_address)来说明其一对一的关系,每一个客户都有一个家庭住址,而每一个地址都对应一个客户. (1)使用外键映射的数据库表说明 数据库表模型图如下: 数据库建表语句如下: CREATE TABLE tb_customer ( id bigint NOT NULL auto_increment COMM

【SSH之旅】一步步学习Hibernate框架(二):一对一关联映射中的主键关联

一对一的映射在对象模型中是经常见到的,主要是将对象模型转换为关系模型就必须在映射文件中进行配置,重点是<one-to-one>标签的使用,有两种方式,第一是主键关联,第二是唯一外键关联,现在先来看第一种方式. 一对一的关联映射中的主键关联,就是说两个对象具有相同的主键值,以表明它们之间的一一对应的关系,数据库表不会有额外的字段来维护它们之间的关系,仅仅是通过表的主键来关联. 上图的Person类和IdCard类之间是一一对应关系,一个人就只能有一个身份证,一个身份证只能对应一个人,那么身份证的

django扩展用户一对一关联

1.app01/models.py里面创建模型UserExtension, 一对一关联User from django.db import models from django.contrib.auth.models import User from django.dispatch import receiver from django.db.models.signals import post_save class UserExtension(models.Model): user = mod

006——hibernate一对一关联映射

一对一关联映射有两种方式:主键关联和外键关联 以夫妻为例(Husband----Wife) 单向关联实体类: Husband.java package com.java.hibernate; public class Husband { private int id; private String name; private Wife wife; public Wife getWife() { return wife; } public void setWife(Wife wife) { thi

MyBatis应用开发(13)映射之一对一关联

1.1.1. 一对一单向关联 resultMap可以定义实体之间的一对一关联关系.本文将介绍如何实现Person和IdCard之间的一对一单向关联关系.假定在业务逻辑上存在这样的约束:IdCard的personid属性应该等于Person的id属性,一个Person唯一对应于一个IdCard. 目标:Person可以通过idCard属性导航到IdCard,而IdCard不能通过person属性导航到Person. Person类: /** * @Title: Person.java * @Pac