如何在Laravel 5.2中加入表格?

时间:2016-05-16 05:06:27

标签: php mysql laravel eloquent laravel-5.2

我是Laravel Framework的初学者。我已经搜索了我的问题并得到了一些解决方案,但这些都没有解决我的问题。所以,

个人资料表: enter image description here 我想在任何用户创建个人资料时填写userID列。为此我想尝试这样的代码:

个人资料模型:

    public function users(){
        return $this->belongsTo('App\User','userID');
   }

和用户模型:

public function profiles()
{
    return $this->hasMany('App\Profile');
}

这样每次都保持null值。我怎么解决这个问题? 谢谢你提前。

2 个答案:

答案 0 :(得分:2)

假设您有以下(您可以这样做)

public function profiles()
{
  return $this->belongsTo(\App\User::class); // we do not need to provide the user_id because laravel assume we are using that
}

<?php
// Profile.php (Model)

public function user()
{
  $this->belongsTo(\App\User::class); // Again we do not need to provide the information because of the table / column names we are using
}

您有几个选项,您可以在创建配置文件时分配user_id(只要它在可填写字段中。

$profile = new Profile;
$profile->user_id = \Auth::getId(); // current logged in user
$profile->somethingElse = 'abc';
$profile->save();

或者既然我们有关系,你应该可以做这样的事情

$profile = new Profile;
$profile->somethingElse = 'abc';
// We will use the current logged in user again
Auth::user()->profiles()->save($profile); // will automagically fill in the user_id with the logged in user's id.

希望能够有所启发

答案 1 :(得分:1)

将数据插入配置文件表时,您只需执行以下操作:

$profile = new Profile();
$profile->userID = Auth::user()->id;
$profile->other_columns = 'values'
.....
$profile->save();

此处无需加入表以在“配置文件表”中插入值。希望这可以帮助你