iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Laravel Model模型关联怎么建立
  • 142
分享到

Laravel Model模型关联怎么建立

2023-06-30 16:06:02 142人浏览 泡泡鱼
摘要

这篇文章主要介绍“Laravel Model模型关联怎么建立”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Laravel Model模型关联怎么建立”文章能帮助大家解决问题。定义关联关系数据库表通常

这篇文章主要介绍“Laravel Model模型关联怎么建立”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Laravel Model模型关联怎么建立”文章能帮助大家解决问题。

定义关联关系

数据库表通常相互关联。
例如,一篇博客文章可能有许多评论,或者一个订单对应一个下单用户。Eloquent 让这些关联的管理和使用变得简单,并支持多种类型的关联:常见的为前三种,在此我们也只讲解前三种关联

  • 一对一

  • 一对多

  • 多对多

  • 远程一对多

  • 远程一对一

  • 一对一(多态关联)

  • 一对多(多态关联)

  • 多对多

建立模型关联

一对一

示例:
两个数据表:guest 用户表和guestinfo用户信息
其中guest表中的主键id字段对应着guestinfo中的外键user_id字段
首先创建两个model文件:
PHP artisan make:model Guest
php artisan make:model Guestinfo
Guest model文件:

class Guest extends Model{    use HasFactory;    // 设置Guest模型对应的数据表    protected $table = 'guest';    // 关闭create_time和update_time字段自动管理    public $timestamps = false;    // 设置与guestinfo的关联方法,方法名建议使用被关联表的名字    public function guestinfo(){    // hasOne(被关联的名命空间,关联外键,关联的主键)        return $this->hasOne('App\Models\Guestinfo','user_id','id');    }}

Guestinfo model文件:

class Guestinfo extends Model{    use HasFactory;    // 设置Guest模型对应的数据表    protected $table = 'guestinfo';    // 关闭create_time和update_time字段自动管理    public $timestamps = false;    // 设置与guestinfo的关联方法,方法名建议使用被关联表的名字    public function guest(){    // hasOne(被关联的名命空间,关联外键,关联的主键)        return $this->belongsTo('App\Models\Guest','user_id','id');    }}

创建一个控制器将两个model文件连接起来:
php artisan make:controller Controllers
内容:

class Controllers extends Controller{    //    public function getOne(){    // 通过关联方法获取guest表中username = admin记录在guestinfo对应的记录    // ->guestinfo 是Guest模型文件里面定义的guestinfo方法        $guestInfo = Guest::firstWhere('username','admin')->guestinfo;// 通过关联方法获取guestinfo中id=3 记录在guest表中的对应记录        $data = Guestinfo::find(3)->guest;                dump($guestInfo);        // 将模型转换成数组        dump($data->toArray());    }}

创建控制器的路由:
Route::get('relative/getOne',[Controllers::class,'getOne']);

一对多

示例:
两个数据表:guest 用户表和article文章表
其中guest表中的主键id字段对应着guestinfo中的外键user_id字段
创建articlemodel文件:
php artisan make:model Article

class Article extends Model{    use HasFactory;    // 设置Guest模型对应的数据表    protected $table = 'article';// 关闭create_time和update_time字段自动管理        public $timestamps = false;    public function guest(){    // 设置与guest的关联方法,与一对一的从表设置一样        return $this->belongsTo('App\Models\April\Guest','user_id','id');    }}

Guest model文件中添加一个article 方法

class Guest extends Model{    use HasFactory;    // 设置Guest模型对应的数据表    protected $table = 'guest';    // 关闭create_time和update_time字段自动管理    public $timestamps = false;    // 设置与guestinfo的关联方法,方法名建议使用被关联表的名字    public function guestinfo(){    // hasOne(被关联的名命空间,关联外键,关联的主键)        return $this->hasOne('App\Models\Guestinfo','user_id','id');    }    // 设置与article的关联:hasmany 有很多     public function article(){        return $this->hasMany('App\Models\April\Article','user_id','id');    }}

Controllers 控制器文件中测试一下:
实例1:查询某一个用户发表的所有文章:

 // 查询某个用户发表的所有文章        $article = Guest::find(1)->article;        // 返回为数据集,需要遍历        foreach ($article as $v){            dump($v->toArray());        }

实例2:查询某个用户最新发表的一篇文章

// 查询某个用户最新发表的一篇文章        // article()生成一个构造器,可以进行筛选        $article = Guest::find(1)->article()->orderby('created_at','desc')->first();        dump($article->toArray());


实例3:通过关联查询某篇文章的发表人的姓名

//  通过article和guest关联,再通过guest关联的guestinfo获取姓名        $name = Article::find(2)->guest->guestinfo;        dump($name->name);

实例4:通过关联查询某篇文章的评论信息
创建Comment评论模型:
php artisan make:model Comment
Comment 模型代码:

class Comment extends Model{    use HasFactory;    // 设置Comment模型对应的数据表    protected $table = 'comment';    // 关闭create_time和update_time字段自动管理    public $timestamps = false;    // 设置与article的关联方法,方法名建议使用被关联表的名字    public function article(){        return $this->belongsTo('App\Models\April\Article','article_id','id');    }}

在Article模型中添加方法comment:

public function comment(){        return $this->hasMany('App\Models\April\Comment','article_id','id');    }

controller控制器代码:

$info = Article::find(2)->comment;        foreach ($info as $v){            dump($v->toArray());        }

关于“Laravel Model模型关联怎么建立”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Laravel Model模型关联怎么建立

本文链接: https://www.lsjlt.com/news/330201.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Laravel Model模型关联怎么建立
    这篇文章主要介绍“Laravel Model模型关联怎么建立”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Laravel Model模型关联怎么建立”文章能帮助大家解决问题。定义关联关系数据库表通常...
    99+
    2023-06-30
  • Django 中怎么建立Model模型
    本篇文章给大家分享的是有关Django 中怎么建立Model模型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Django Model 模型Django Model层是Djan...
    99+
    2023-06-02
  • 如何使用Laravel实现模型关联
    这篇文章主要介绍了如何使用Laravel实现模型关联的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用Laravel实现模型关联文章都会有所收获,下面我们一起来看看吧。一对一一对一关联是目前存在的最基本的关...
    99+
    2023-07-04
  • navicat怎么建立表之间关联
    在Navicat中,建立表之间的关联通常是通过外键来实现的。下面是一些简单的步骤来建立表之间的关联: 打开Navicat并连接到...
    99+
    2024-04-02
  • 图文详解laravel多对多关联模型
    关联模型(多对多) 多对多关系(抽象) 例:一篇文章可能有多个关键词,一个关键词可能被多个文章使用。 关键词表: 字段id ...
    99+
    2024-04-02
  • TP5中关联模型怎么用
    这篇文章主要为大家展示了“TP5中关联模型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“TP5中关联模型怎么用”这篇文章吧。首先是model里,举个例子,...
    99+
    2024-04-02
  • laravel多对多关联模型的示例分析
    这篇文章给大家分享的是有关laravel多对多关联模型的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。关联模型(多对多)多对多关系(抽象)例:一篇文章可能有多个关键词,一个关键词可能被多个文章使用。 关键...
    99+
    2023-06-20
  • Laravel之模型关联预加载的示例分析
    这篇文章将为大家详细讲解有关Laravel之模型关联预加载的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Laravel学习笔记之模型关联预加载说明:本文主要说明Laravel Eloquent的...
    99+
    2023-06-14
  • mysql中怎么建立表之间的关联
    在MySQL中,可以通过外键(foreign key)来建立表之间的关联关系。具体步骤如下: 创建第一个表(父表): CREAT...
    99+
    2024-04-02
  • sql表与表之间怎么建立关联
    在 SQL 中,表与表之间可以通过外键建立关联。外键是一个表中的字段,它包含了另一个表的主键,从而建立了两个表之间的关联。 要建立表...
    99+
    2024-04-09
    sql
  • Laravel关联怎么使用
    本篇内容介绍了“Laravel关联怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、介绍在Laravel中,模型是数据访问的主要方式...
    99+
    2023-07-06
  • sqlserver怎么建立新用户及关联数据库
    本篇内容主要讲解“sqlserver怎么建立新用户及关联数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“sqlserver怎么建立新用户及关联数据库”吧!我...
    99+
    2024-04-02
  • sql外键关联建立的方法是什么
    在SQL中,可以使用FOREIGN KEY约束来建立表与表之间的外键关联。具体而言,可以在创建表的时候使用FOREIGN KEY约束...
    99+
    2024-04-09
    sql
  • navicat怎么建立表关系
    navicat 中建立表关系的步骤:确定表关系类型(一对一、一对多或多对多)。连接到数据库并打开设计器。拖放表创建关系。配置关系属性,包括名称、类型、列和主键/外键。保存关系。验证关系是...
    99+
    2024-04-24
    navicat
  • access怎么建立表间关系
    这篇文章主要介绍access怎么建立表间关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方法:1、建立数据库;2、单击工具栏上的“视图”图标,选择“关系”打开窗口;3、在“关系的添...
    99+
    2024-04-02
  • Django中怎么建立mvc模式
    这篇文章将为大家详细讲解有关Django中怎么建立mvc模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、说明(1)models.py 文件主要用一个 Python 类来描画数据表。 称为模型(mod...
    99+
    2023-06-14
  • ASP.NET Core怎么使用EF创建关系模型
    今天小编给大家分享一下ASP.NET Core怎么使用EF创建关系模型的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-29
  • Laravel模型的get find first怎么使用
    本文小编为大家详细介绍“Laravel模型的get find first怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Laravel模型的get find first怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-27
  • Python Django的模型建立与操作方法是什么
    本文小编为大家详细介绍“Python Django的模型建立与操作方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python Django的模型建立与操作方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-07-04
  • ADO.NET程序相关项目怎么建立
    本篇内容主要讲解“ADO.NET程序相关项目怎么建立”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ADO.NET程序相关项目怎么建立”吧!掌握DataSet使用方法必须掌握ADO.NET程序另外...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作