Intereting Posts
Как и зачем использовать фигурные скобки: return $ this -> {$ this-> action} (); Печать ранга из суммы в PHP и MySQL в 1,1,3,4 и т. Д. Заказ Почему вы не используете C для своих веб-приложений? mysql_query сохранить тип данных, созданный в таблице при возврате? Вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: lists () при посеве после обновления до Laravel 5.3 Предотвращение Laravel добавления нескольких записей в сводную таблицу В контексте PHP / Apache / Linux, почему именно chmod 777 опасен? Размер загрузки PHP и его влияние на размер сообщения и ограничение памяти Несколько данных запроса в единую таблицу HTML (PHP, MySQL) Могу ли я создать функцию PHP, которую я могу вызвать без круглых скобок? приемлемо ли перерабатывать или повторно использовать переменные? Как разобрать этот json с php? Загрузка через JQuery AJAX Сообщение не работает Фильтр строк изображения php tcpdf Как удалить все двойные кавычки из значений json key с помощью php?

Laravel 4 загружаемая загрузка и категории, подкатегории, статьи

Привет, я думал, что могу справиться с этим сам, но на самом деле я не знаю, как его укусить.

Я пытаюсь классифицировать свои программы. Будет только 2 уровня категорий:

1 КАТЕГОРИЯ
2 | -Субтегория

Я хочу, чтобы это было как можно проще.
– программа может принадлежать только одной подкатегории,
– категории могут иметь много подкатегорий,
– подкатегории могут иметь много программ,

Конечно, я хотел бы перечислить все программы из подкатегорий, когда кто-то выбирает основную категорию.

Я также не уверен в моей текущей структуре таблиц базы данных и отношениях в моделях.

Таблицы в базе данных:

программы : id, title, description, program_subcategory_id
program_categories : id, name
programs_subcategories : id, name, program_category_id

Модели:
Program.php

class Program extends Eloquent { protected $table = 'programs'; public function user() { return $this->belongsTo('User'); } public function subcategory() { return $this->belongsTo('ProgramSubcategory', 'program_subcategory_id'); } } 

ProgramCategory.php

 class ProgramCategory extends Eloquent { protected $table = 'programs_categories'; public function subcategories() { return $this->hasMany('ProgramSubcategory'); } } 

ProgramSubcategory.php

 class ProgramSubcategory extends Eloquent { protected $table = 'programs_subcategories'; public function programs() { return $this->hasMany('Program'); } public function category() { return $this->belongsTo('ProgramCategory'); } } 

Фактические контроллеры:
ProgramsController.php

 class ProgramsController extends BaseController { public function index() { $programs = Program::with('subcategory')->orderBy('programs.id', 'desc')->paginate(5); $acategories = ArticleCategory::All(); $pcategories = ProgramCategory::All(); return View::make('programs.index', compact('programs', 'acategories', 'pcategories')); } } 

ProgramsSubcatecories.php

 class ProgramsSubcategories extends BaseController { public function index($cname) { $programs = ProgramSubcategory::whereAlias($cname)->first()->programs()->orderBy('id', 'DESC')->paginate(10); $pcategories = ProgramCategory::All(); $scategories = ProgramSubcategory::All(); $acategories = ArticleCategory::All(); return View::make('programs.index', compact('programs', 'pcategories', 'scategories ', 'acategories')); } public function show($cname, $id) { $category = ProgramSubcategory::whereAlias($cname)->first(); $program = $category->programs()->findOrFail($id); $pcategories = ProgramCategory::All(); $acategories = ArticleCategory::All(); return View::make('programs.show', compact('program', 'category', 'pcategories', 'scategories ', 'acategories')); } } 

Для меня не проблема перечислить все предметы из одной категории с нетерпеливой загрузкой. Но у меня проблема, как это сделать с 2 уровнями категорий.

Пожалуйста, сообщите, как начать работу.

Related of "Laravel 4 загружаемая загрузка и категории, подкатегории, статьи"

Вы не ищете eager loading , вам нужно решить, как управлять иерархическими данными в вашей базе данных.

Модель вложенных наборов отлично подходит для этой цели. Вы должны прочитать некоторую теорию на Wiki: http://en.wikipedia.org/wiki/Nested_set_model

К счастью, уже есть реализации Eloquent.
Чтобы упомянуть некоторые:
– Баум (лучший бесплатный, имхо), https://github.com/etrepat/baum
– Вложенный набор Laravel, https://github.com/atrauzzi/laravel-nested-set
– Laravel4-nestedset, https://github.com/lazychaser/laravel4-nestedset

и платный (конечно же, самое высокое качество)
от компании Cartalyst – https://cartalyst.com/manual/nested-sets