在我的数据库中,我有users
和tickets
表。现在我想在phpmyadmin
和tickets.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
]
答案 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。