2017-03-11 39 views
0

這是我的第一個laravel Application和我的第一個基於數據庫的應用程序,所以請耐心等待我! 我會盡量具體!如何通過laravel中的類別顯示帖子

分類表: 標識 名稱 時間戳

帖子表: 標識 標題 體 塞 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}','[email protected]'); 

我現在很困惑! 謝謝大家提前!

+0

嘗試'$帖= DB ::表( '信息') - >在哪裏( 'CATEGORY_ID',$ CATEGORY_ID) - >得到( );' –

回答

0

定義模型

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]); 
     } 
    } 
+0

我做了你所說的...如果我傳入控制器上的$ Category_id,我得到一個空白頁 ,但如果我不通過$ Category_id並使用$ Category = Category :: find(1) ; 我得到了所有發佈在我的類別中的帖子,但是它並不關係我去的類別,它總是在該類別下顯示帖子。 – TasosTogr

+0

@TasosTogr請出示您的路線。請配置你的路線:'Route :: get('category/{Category_id}','CatController @ getCategory') - > where('Category_id','[0-9] +');' –

+0

Route :: get('computer/{id}',['uses'=>'CatController @ show','as'=>'pages.computer-id']);這是我正在使用的路線,但正如我告訴你如果我在控制器中保留Category_id我得到一個空白頁 – TasosTogr

0

我希望這會幫助你。

路線:

Route::get('categories/{category_id}/computers','[email protected]'); 

控制器:

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'); 
}