我创建了一个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');
}
但它只返回一个类别。你能告诉我如何显示所有类别吗?非常感谢!
答案 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_id
,id
我想你不会成为在您的应用程序中使用它们
迁移将最小化到
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