我试图在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');
}
}
这如何正常工作?任何提示都会有所帮助。提前致谢
答案 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)
在地址模型上更改 公共功能地址(){ ...... }
要
公共功能用户(){ ..... }