2020-04-04(laravel一对一)

一对一:同时操作两张表
一对一关联是一个非常简单的关联关系,例如,一个 User 模型有一个与之关联的 Phone 模型,一个人对应一个手机,一个手机对应一个人!

有User和Admin的基础上。
在User.php中,新建函数并加入该代码
return $this->hasOne('App\Admin','id');

在UserController.php中加入一下代码,便能调用Admins表中的数据
$datas= User::find(1)->Userinfo()->get();
 dd($datas)

1、关联只能使用find()函数吗?
答:return $this->hasOne('App\Admin','uid','id');
find()是筛选出与id相同的uid的数据,不单单是只显示一天,只要与id一样的uid都会筛选出来。会显示多条数据。hasOne()显示一条数据,hasMany()显示多条数据。

还能添加wher()来进行限制。
$datas= User::find(1)->UserAdminS()->where('email','jaskolski.carlo@example.net')->get();

2、hasOne中多几个参数是是什么意思?
答:return $this->hasOne('App\Admin','uid','id');存在两个参数则说明,uid与id的值要相同才能关联起来。如果只填一个,那么默认另一个为主表的主键。

步骤(重点)
1、创建模型

php artisan make:model home/Article

php artisan make:model home/Author

2、定义结构代码

//关联相关的表
protected table='article'; //禁用时间字段 publictimestamps=false;

3、关联模型的关联方法
分析是谁关联谁,谁是主表,谁是从表
public function author()
{
return $this->hasOne('App\home\Author', 'id', 'author_id');
}

4、怎么使用呢?
$data=\App\home\Article::get();

foreach (data askey=>$value){

echo $value->id.'<br/>' ;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容