php - Laravel (HasMany) 不检索值

标签 php laravel eloquent

我有以下型号:

    namespace App;

use Illuminate\Database\Eloquent\Model;

class forum_category extends Model
{
    //

    protected $table = 'forum_category';

    public function posts()
    {
        $this->hasMany('App\forum_post');
    }
}

还有

namespace App;

use Illuminate\Database\Eloquent\Model;

class forum_post extends Model
{
    //
    protected $table = 'forum_post';


    public function category()
    {
        $this->belongsTo('App\forum_category');
    }
}

在我的 Controller 中,我尝试获取所有类别及其帖子:

    namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

use App\forum_category as forum_category;


class ForumController extends Controller
{

    public function __construct()
    {

    }

    public function index ()
    {

        $categories = forum_category::all();

        return view('forum', ['categories' => $categories]);
    }

    public function createPost()
    {

    }

    public function createReply()
    {

    }
}

但是它似乎只返回我的类别。

有人可以告诉我我做错了什么吗?

最佳答案

查询应如下所示:

$categories = forum_category::with('posts')->get();

https://laravel.com/docs/5.5/eloquent-relationships#eager-loading

如果您的 forum_post 表中有 category_id,这将加载包含相关帖子的类别。

然后只需迭代集合即可获取帖子:

@foreach ($categories as $category)
    @foreach ($category->posts as $post)
        {{ $post->title }}
    @endforeach
@endforeach

此外,关系应该是:

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

关于php - Laravel (HasMany) 不检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48431038/

相关文章:

laravel - 在 dompdf 库中找不到 PDF 类

php - 中间表的 Eloquent 模型关系

Laravel ->when() 大于或小于

php - Eloquent find(2) 返回错误记录

php - 将 Illuminate\Http\Request 转换为数组

php - 如何在 Laravel 中禁用注册新用户

javascript - 根据值设置表单名称

php - Laravel 中调用未定义函数 App\Http\Controllers\now()

javascript - 如何获取php在geoserver中发布的图层列表?

php - FFmpeg php 设置图片大小缩略图