Laravel(HasMany)不会检索值 [英] Laravel (HasMany) doesnt rectrieve values

查看:37
本文介绍了Laravel(HasMany)不会检索值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下型号:

    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');
    }
}

在我的控制器中,我尝试获取其帖子的所有类别:

in my controller i attempt to get all categories with their posts:

    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()
    {

    }
}

但是,似乎只返回了我的类别.

However it seems to only be returning my categories.

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

Can someone tell me what ive done wrong?

推荐答案

查询应如下所示:

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

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

如果forum_post表中有category_id,则会加载带有相关帖子的类别.

If you have category_id in the forum_post table, this will load categories with related posts.

然后遍历集合以获取帖子:

Then just iterate over the collection to get posts:

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

此外,该关系应为:

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

这篇关于Laravel(HasMany)不会检索值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆