gbrock / laravel-pages
Requires
Requires (Dev)
- laravel/laravel: ^5.1
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2024-12-21 17:43:26 UTC
README
A Laravel 5.1 package designed to add pages to your Laravel application. A page is just content defined by specific URL, or slug. A page may or may not be published.
Installation
-
Run
composer require gbrock/laravel-pages
from your project directory. -
Add the service provider to the
providers
array inconfig/app.php
:
Gbrock\Pages\Providers\PageServiceProvider::class,
-
Publish the migrations, views, and config file:
php artisan vendor:publish --provider="Gbrock\Pages\Providers\ContactableServiceProvider"
-
Run the migrations:
php artisan migrate
Usage
Creating a Public Page
Create a Page model:
\Gbrock\Pages\Models\Page::create([ 'title' => 'Hello, World', 'content' => '<p>Hi everybody</p>', 'public' => true, ]);
...which is now accessible by browsing to /hello-world
!
Making a Domain
A domain is a set of pages which are always under a specific slug. For example, you might make a "BlogPage" model
whose members are always accessible under blog/{slug}
:
<?php namespace App; use Gbrock\Pages\Models\Page; use Gbrock\Pages\Traits\Domainable; class BlogPage extends Page { use Domainable; protected static $domain = 'blog'; }
Then you can query that model for only that domain of pages. Please note that, by default, domained pages will be
included in queries when using the above Page model. In order to ignore domained pages, extend the included Page model
and add ignorable domains to the $subdomains
property:
<?php namespace App; use Gbrock\Pages\Models\Page as BasePage; class Page extends BasePage { protected static $subdomains = ['blog']; }