如何通过laravel中的类别显示帖子

时间:2017-03-11 20:01:18

标签: php database laravel view posts

这是我的第一个laravel应用程序,以及我的第一个基于数据库的应用程序,所以请耐心等待我! 我会尽量具体!!

分类表: ID 名称 时间戳

帖子表: ID 标题 身体 金属块 CATEGORY_ID 时间戳

假设我有4个catergories。 笔记本电脑,电脑,手机,平板电脑

我希望当我去/计算机能够获得所有特定于该类别的帖子时。

Posts Model

Category Model

类别控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Post;
use App\Category;

class CatController extends Controller
{
   public function getCategory($Category_id)
{
   $posts = Post::where('Category_id',$Category_id);
  return view('blog.index',['posts' => $posts]);
}

路线:

Route::get('computer/{Category_id}','CatController@getCategory');

此刻我真的很困惑!! 提前谢谢大家!!

3 个答案:

答案 0 :(得分:1)

定义模型

class Category extends Model
{
    /**
     * Get the posts.
     */
    public function posts()
    {
        return $this->hasMany('App\Post', 'Category_id');
    }
}

class Post extends Model
{
    /**
     * Get the category.
     */
    public function category()
    {
        return $this->belongsTo('App\Category', 'Category_id');
    }
}

定义您的控制器

class CatController extends Controller
{
    public function getCategory($Category_id)
    {
        $category = Category::find($Category_id);
        if($category !== null){
            $posts = $category->posts;
            return view('blog.index',['posts' => $posts]);
        }
    }

答案 1 :(得分:0)

我希望这会对你有所帮助。

路线:

Route::get('categories/{category_id}/computers','CatController@show');

控制器:

public function show($category_id)
{
   $category = Category::findOrFail($category_id);

    if($category){
       $posts = Post::where('Category_id',$category_id)->get();

        return view('category.index', compact('posts'));
    }

    return view('errors.404');
}

答案 2 :(得分:0)

只需将其添加到您的控制器

public function category($id){


  $data['posts'] = Post::where('status', 1)->where('category_id', $id)->orderBy('id', 'DESC')->get();

  return view('frontEnd.home', $data);
}