最新下载
热门教程
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 
Laravel5.1框架模型远层一对多关系代码实例解析
时间:2022-06-24 21:20:28 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下Laravel5.1框架模型远层一对多关系代码实例解析,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
远层一对多我们可以通过一个例子来充分的了解它:
每一篇文章都肯定有并且只有一个发布者,发布者可以有多篇文章,这是一个一对多的关系。一个发布者可以来自于一个国家,但是一个国家可以有多个发布者,这又是一个一对多关系,那么这其中存在一个远层的一对多就是"国家和文章的关系"。国家表可以通过发布者表远层关联到文章表。
1 实现远层一对多关系
1.1 文章表结构
  public function up()
  {
    Schema::create('articles', function (Blueprint $table) {
      $table->increments('id');
      $table->string('title');
      $table->text('body');
      $table->integer('user_id');
      $table->timestamps();
    });
  }
1.2 在users表中添加一列
  public function up()
  {
    Schema::table('users', function (Blueprint $table) {
      $table->integer('country_id');
    });
  }
  public function down()
  {
    Schema::table('users', function (Blueprint $table) {
      $table->dropColumn('country_id');
    });
  }
1.3 国家表结构
  public function up()
  {
    Schema::create('countries', function (Blueprint $table) {
      $table->increments('id');
      $table->string('name');
      $table->timestamps();
    });
  }
1.4 编写一对多关系
首先是Country和User的关系:
Country模型:
  public function users()
  {
    return $this->hasMany(User::class);
  }
User模型:
  public function country()
  {
    return $this->belongsTo(Country::class);
  }
然后是User和Article的关系:
User模型:
  public function articles()
  {
    return $this->hasMany(Article::class);
  }
Article模型:
  public function user()
  {
    return $this->belongsTo(User::class);
  }
1.5 访问远程一对多关系
实现Country可远层查找到Article:
  public function articles()
  {
    /**
     * 建议第一个和第二个参数写全,第三个第四个参数可省略使用默认(如果默认的没问题)。
     */
    return $this->hasManyThrough(Article::class, User::class, 'country_id', 'user_id');
  }
                                        				                
                    相关文章
- 潮汐守望者希瑟拉强度怎么样 11-04
 - 洛克王国世界刺电环如何进化 11-04
 - 原神幽境危战霜役人打法教学 11-04
 - 超自然行动组最新小抄分享 2025实用攻略技巧汇总 11-04
 - 王者荣耀西施奖励网站在哪进 西施奖励最新网页在线入口 11-04
 - 超自然行动组可用的兑换码有哪些 2025最新有效兑换码领取 11-04