拉拉维尔 - 一对多关系不是单向运作的


Laravel - One to Many relationship is not working one way

我在Laravel中遇到了一个问题,在一对多关系中,如果从一侧("hasMany"的一侧)使用它,则返回null,但相反("属于"的一侧")返回包含对象。就我而言,一个类别可以有多个线程,并且所有线程都属于一个类别。

以下是相关代码:

类别:

namespace App;
use Illuminate'Database'Eloquent'Model;
class Category extends Model
{
    public $timestamps = false;
    protected $table = 'categories';
    public function threads() {
        $this->hasMany('App'Thread', 'category_id');
    }
}

线:

<?php
namespace App;
use Illuminate'Database'Eloquent'Model;
class Thread extends Model
{
    public function user()
    {
        return $this->belongsTo('App'User');
    }
    public function category()
    {
        return $this->belongsTo('App'Category');
    }
}

我尝试获得它的地方:

Thread::with('category')->get();
$latestThread = dd(Category::find(1)->threads());

每个表的结构如下:类别:

id, name, description

线:

id, name, user_id, category_id

(如果您想知道,dd 输出为空)。如果您需要其他任何东西,请询问!

你错过了线程函数中的 return 关键字

public function threads() {
    return $this->hasMany('App'Thread', 'category_id');
}