Laravel模型之间的简单关系返回null

时间:2016-09-19 08:46:45

标签: laravel laravel-5.2

在我的数据库中,我有userstickets表。现在我想在phpmyadmintickets.userId之间创建的users.id关系中创建主题之间的简单关系,现在我在模型上编写了一些函数:

用户模型:

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

门票型号:

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

此代码dd(\App\Tickets::with('user')->get());在关系结果上返回null,例如:

0 => Tickets {#209 ▼
  #table: "tickets"
  #connection: null
  #primaryKey: "id"
  #keyType: "int"
  #perPage: 15
  +incrementing: true
  +timestamps: true
  #attributes: array:9 [▶]
  #original: array:9 [▶]
  #relations: array:1 [▼
    "user" => null
  ]

2 个答案:

答案 0 :(得分:1)

您的关系假定user_id为外键作为默认值。您还可以通过将其他参数传递给hasMany方法来覆盖外键和本地键:

return $this->hasMany('App\Ticket', 'foreign_key', 'local_key');

所以,

用户模型:

public function tickets()
    {
        return $this->hasMany('App\Ticket','userId','id');
    }

故障单型号:

public function user()
{
    return $this->belongsTo('App\User','userId','id');
}

答案 1 :(得分:0)

在你的门票模型中它应该是

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

默认外键laravel正在搜索 model_id 。还有一点注意事项:使用它的单一动词是一种常见的最佳做法,所以门票应该是Ticket。