Если вы установите все так же, как я, все будет работать хорошо!
Соотношение между таблицами постов и категориями - ManyMany.Таким образом, вам нужно имя сводной таблицы category_post для хранения отношений данных 2 таблицы:
Schema::create('category_post', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
$table->bigInteger('category_id')->unsigned();
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
$table->bigInteger('post_id')->unsigned();
$table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
});
В модели Post:
class Post extends Model
{
public function categories(){
return $this->belongsToMany(Category::class,'category_post','post_id','category_id');
}
}
Модель категории:
class Category extends Model
{
public function posts(){
return $this->belongsToMany(Category::class,'category_post','category_id','post_id');
}
}
ИYourController:
public function getList($name)
{
$category_id = Category::where('name', '=', $name)->first()->id;
$posts = Post::whereHas('categories', function ($q) use ($category_id) {
$q->where('category_id', '=', $category_id);
})->paginate(12);
return view('show')->withPosts($posts)->withName($name);
}
Удачного кодирования!Спроси меня, если тебе нужно!