2017-03-11 15 views
0

これは私の最初のlaravelアプリケーションで、私の最初のデータベースベースのアプリケーションですので、私と一緒にしてください! 私は具体的にしようとします!laravelのカテゴリーで投稿を表示するには

カテゴリー表: 同上 名前 タイムスタンプ

投稿表: 同上 タイトル 体 スラグ CATEGORY_ID タイムスタンプ

私は4 catergoriesを考えてみましょう。 ラップトップ、コンピュータ、携帯電話、タブレット

私は/ computersにアクセスして、そのカテゴリに固有の投稿をすべて取得できるようにしたいと考えています。

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) ; 私は自分のカテゴリの1つにあるすべての投稿を取得しますが、どのカテゴリに行っても問題はありません。常にその1つのカテゴリの下に投稿を表示します。 – TasosTogr

+0

@TasosTogrあなたのルートを示してください。 'Route :: get( 'category/{Category_id}'、 'C​​atController @ getCategory') - >ここで( 'Category_id'、 '[0-9] +'); ' –

+0

ルートを設定してください:: 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'); 
} 
関連する問題