这篇文章主要为大家展示了“Laravel5.1框架模型远层一对多关系的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“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');
}以上是“Laravel5.1框架模型远层一对多关系的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注天达云行业资讯频道!