Laravel (HasMany) 不检索值
                            本文介绍了Laravel (HasMany) 不检索值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
我有以下型号:
    namespace App;
use IlluminateDatabaseEloquentModel;
class forum_category extends Model
{
    //
    protected $table = 'forum_category';
    public function posts()
    {
        $this->hasMany('Appforum_post');
    }
}
和
namespace App;
use IlluminateDatabaseEloquentModel;
class forum_post extends Model
{
    //
    protected $table = 'forum_post';
    public function category()
    {
        $this->belongsTo('Appforum_category');
    }
}
在我的控制器中,我尝试使用他们的帖子获取所有类别:
in my controller i attempt to get all categories with their posts:
    namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateRoutingController;
use Appforum_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('Appforum_category');
}
                        这篇关于Laravel (HasMany) 不检索值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
