编程语言
首页 > 编程语言> > php-Laravel没有外键的一对一关系

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