unisharp / laravel-pagerender
Provide functions to render regular pages with parent-child relationships.
1.0.0
2015-10-13 05:02 UTC
Requires
- php: >=5.5.0
- illuminate/support: >=5.0.0
This package is auto-updated.
Last update: 2024-11-15 14:48:13 UTC
README
- Find your page by alias(aboutus, service, and so on), forget about id.
- Support page with parent-child structure.
- Support custom view for different pages.
- Support breadcrumb(with ancestors function).
Installation
-
install package
composer require unisharp/laravel-pagerender
-
use the trait in your model
use \Unisharp\Pagerender\PageRenderTrait; private $default_view = 'page.show';
-
make sure your table has these columns :
parent_id
,alias
,custom_view
public function up() { Schema::create('models', function(Blueprint $table) { // ... $table->string('alias'); $table->integer('parent_id')->unsigned()->nullable(); $table->string('custom_view', 128)->nullable(); // ..
Usage
$page = new Page(); $page->render(); // Generates the default view(or custom view if the column is not empty). $page->summary('content', 7); // Shorten words of a column, ex: The PHP... $page->getByAlias('aboutus'); // Get the about us page. $page->hasByAlias('aboutus'); // Check if the about us page exists. $page->allWithAlias(); // Get pages that have alias. $page->subs; // Get children pages. $page->hasSubs(); // Check if children pages exist. $page->parent; // Get parent page. $page->hasParent(); // Check if parent page exists. $page->roots(); // Get all pages at top level. $page->isRoot(); // Check if this page is at top level. $page->getLevel(); // Get level count(top level as 0). $page->ancestors(); // Get all parent pages of the current page.
Todo
$page->tree(); // Get all pages with parent-child structure.