我开始思考为什么Laravel实现与他们的框架的关系,他们从来没有为我工作过他们在他们休息时需要解决的巨大压力。这是我的关系第五次返回null,即使确保我已正确设置它们?
class UserStats extends Authenticatable
{
protected $table = 'habbo_user_stats';
public $timestamps = false;
protected $guarded = ['id'];
public function user()
{
return $this->belongsTo(User::class, 'id');
}
}
和
class User extends Authenticatable
{
protected $table = 'habbo_users';
public $timestamps = true;
protected $guarded = ['id'];
public function stats() {
return $this->belongsTo(UserStats::class, 'user_id');
}
}
虽然,在打电话时
{{ $user->stats->some_column }}
stats
返回null ... $user
不为空。
我认为你也必须定义关系的所有者。即:
public function stats() {
// $this->hasMany OR $this->hasOne, depending on your use case.
return $this->hasMany(UserStats::class, 'user_id');
}
我们需要在这里知道,用户是否有很多用户权限?或者userstats有很多用户记录?你打算在这做什么?
以下是我注意到您的代码的事情
要确认我们需要查看数据库结构和迁移。
如果userstat有很多用户且用户属于1 userstat。
迁移将是
users表将有user_stat_id,userstats表将没有user_id
代码看起来像这样。
UserStatus.php
class UserStats extends Model
{
protected $table = 'habbo_user_stats';
public $timestamps = false;
protected $guarded = ['id'];
public function users()
{
return $this->hasMany(User::class, 'user_stat_id');
}
}
user.php的
class User extends Authenticatable
{
protected $table = 'habbo_users';
public $timestamps = true;
protected $guarded = ['id'];
public function stat() {
return $this->belongsTo(UserStats::class, 'user_stat_id');
}
}