获取Laravel所有类别的帖子

时间:2018-05-28 07:31:26

标签: laravel categories

我创建了一个post post_post_category_relations表来保存帖子类别。

Schema::create('post__post_category_relations', function (Blueprint $table) {
        $table->engine = 'InnoDB';
        $table->increments('id');
        $table->integer('post_id')->unsinged();
        $table->integer('category_id')->unsinged();
        $table->timestamps();
    });

在刀片模板编辑帖子中,我想要帖子的节目列表类别。

在Post模型中我写道:

public function categories(){
    return $this->belongsTo(PostCategoryRelations::class,'id','post_id','category_id');
}

但它只返回一个类别。你能告诉我如何显示所有类别吗?非常感谢!

1 个答案:

答案 0 :(得分:2)

这与帖子和类别之间的Many To Many方法类似。并且连接帖子和类别表的联结表应该有<?php class LedsCom_EanRemover_Model_Observer{ public function removeEan($observer){ $new_product = $observer->getEvent()->getNewProduct(); // Get new product from event-observer. $new_product->setData('ean', null); // Remove the ean of the new product. } } post_id,其他列不需要category_idid我想你不会成为在您的应用程序中使用它们 迁移将最小化到

timestamps()

对于许多人而言,您可以在模型中添加定义,例如

Schema::create('post__post_category_relations', function (Blueprint $table) {
        $table->engine = 'InnoDB';
        $table->integer('post_id')->unsinged();
        $table->integer('category_id')->unsinged();

});

如果您仍希望保留联结表class Post extends Model { public function categories() { return $this->belongsToMany(Category::class, 'post__post_category_relations', 'post_id'); } } class Category extends Model { public function posts() { return $this->belongsToMany(Post::class, 'post__post_category_relations', 'category_id'); } } 中的其他列,则可以通过在模型中定义为透视属性来访问它们,例如

post__post_category_relations