php-Laravel没有外键的一对一关系
作者:互联网
我有两个表posts表和Categories表.
每个帖子只有一个类别.
What I am trying to do
用一个没有外键的类别ID连接每个帖子.
Why I am trying to do this
因为我不想在每个帖子中都复制类别词,所以我只想复制类别ID.
PostsController.php code
$posts = Post::orderBy('id', 'DESC') -> limit(16) -> get();
@foreach($posts as $post)
dd($post -> categories() -> cat);
@endforeach
Posts.php model code
class Post extends Model
{
public function category() {
return $this->hasOne('App\Category');
}
}
Problem
我收到错误消息,但我在类别表中没有外键时要求我提供外键.
解决方法:
没有必要建立FK关系.如果您有办法告诉Laravel如何查找相关记录,它可以为您完成.例如
class Post extends Model
{
public function category() {
return $this->hasOne('App\Category','id','category_id');
}
}
上面将告诉Laravel,当您在帖子中请求类别属性时,应从帖子表&中获取category_id.在类别表中查找ID.如果两个都匹配,它将为您提供匹配的类别.
标签:laravel,relational-database,mysql,php 来源: https://codeday.me/bug/20191111/2021123.html