如何在Laravel中连接用户和地址模型

时间:2017-06-22 12:54:31

标签: php laravel model

我试图在Laravel中连接两个模型一个默认用户模型和另一个地址模型,但我在连接这两个模型时遇到了一些麻烦。

用户模型为

    <?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Model;
use App\Address;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function address()
    {
        return $this->hasOne('App\Address');
    }
}

地址模型是

 <?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\User;
use Session;

class Address extends Model
{
    protected $table = 'usercontacts';
    public function address()
    {
      return $this->belongsTo('App\User');
    }
}

这如何正常工作?任何提示都会有所帮助。提前致谢

2 个答案:

答案 0 :(得分:0)

首先,根据您定义关系的方式,您的usercontacts表中是否有一个名为user_id的列?

如果没有,你需要一个。或者,如果您使用其他特定外键,例如belongs_to_user_id,则必须将其指定为hasOne关系中的第二个参数。 E.g。

// User.php
return $this->hasOne('App\Address', 'belongs_to_user_id');

您可以分享您与我们一起收到的错误消息吗?

答案 1 :(得分:0)

在地址模型上更改 公共功能地址(){ ...... }

公共功能用户(){ ..... }