美文网首页
2020-04-04(laravel一对一)

2020-04-04(laravel一对一)

作者: 浪子游剑 | 来源:发表于2020-04-04 16:51 被阅读0次

    一对一:同时操作两张表
    一对一关联是一个非常简单的关联关系,例如,一个 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/>' ;
    

    }

    相关文章

      网友评论

          本文标题:2020-04-04(laravel一对一)

          本文链接:https://www.haomeiwen.com/subject/hzvjphtx.html