2016-07-11 2 views
0

Я хочу, чтобы как www.example.com/categories/{1}/{100}/Как написать несколько параметров в контроллере в Laravel 5

{1} является выбор категории

{100} является выбор подкатегории

Я сделал routes.php как это,

Route::get('/categories/{categoryId}/{subcategoryId}', ['as'=>'subcategory.post','uses'=>'[email protected]']); 

Я не уверен, как настроить контроллер на AdminSubCategoriesController @ подкатегории

public function subcategory($categoryId, $subcategoryId) 
{ 

    // I am not sure how to write here. 

    // $category = Category::findOrFail($categoryId); 

    // $subcategories = SubCategory::findOrFail($subcategoryId); 

    // $posts =   

    return view('subcategory', compact('$category','$subcategories')); 

} 

Я хочу показывать только сообщения, которые относятся к {1}/{100} на вид.

+0

у вас есть категория и подкатегория в adminSubCategoriesController ..? –

+0

показать нам свои отношения и схему базы данных, этот вопрос не связан с вашим контроллером и маршрутизатором –

ответ

0

Вам нужно написать запрос на объединение, чтобы вернуть эти сообщения. Я не знаю, что ваша схема выглядит, но вот пример

$posts = DB::table('posts') 
       ->join('categories', 'category.id', '=', 'posts.id') 
       ->join('subcategories', 'subcategory.id', '=', 'category.id') 
       ->select('posts.*') 
       ->get(); 

return view('subcategory', compact('posts')); 
0

Вы можете попробовать что-то вроде этого:

Категория:

<?php 

namespace app; 

use Illuminate\Database\Eloquent\Model; 

class Category extends Model { 

    public function subcategories() { 
     return $this->hasMany('app\Subcategory', 'category_id'); 
    } 

} 

Подкатегория:

<?php 

namespace app; 

use Illuminate\Database\Eloquent\Model; 

class Subcategory extends Model { 

    public function category() { 
     return $this->belongsTo('app\Category', 'category_id'); 
    } 

    public function posts() { 
     return Post::all()->where('subcategory_id', $this->id)->get(); 
    } 

} 

Использование Красноречивые отношения, которые вам нужно будет адаптировать к вашему контроллеру, передают ваши идентификаторы.