1. Go to this page and download the library: Download sideapps/laravel-pages library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sideapps / laravel-pages example snippets
bash
php artisan page:static TestStaticPage
php
class StaticPageController extends Controller {
private CreatePageFactory $createPageFactory;
public function __construct(CreatePageFactory $createPageFactory) {
$this->createPageFactory = $createPageFactory;
}
public function test() {
$page = $this->createPageFactory->getPage(TestStaticPage::class);
return $page->render();
}
...
}
bash
php artisan page:dynamic PostPage
php
namespace App\Pages;
use Sideapps\LaravelPages\Breadcrumb\Breadcrumb;
use Sideapps\LaravelPages\Pages\DynamicPage;
use Sideapps\LaravelPages\Pages\Page;
class PostPage extends DynamicPage implements Page {
protected static string $translation_key = 'post_page';
protected static string $route = 'posts.show';
protected static string $view = 'posts.show';
public function routeParams():array {
return [
'slug' // Same as 'slug' => 'slug' (get $this->model->slug value)
'slugBis' => 'slug' // (get $this->model->slug value) for slubBis route parameter
'slugBisBis' => function() {return $this->model->slug;} // Specify value with closure
];
}
public function getBreadcrumb():?Breadcrumb {
return new Breadcrumb([
$this->createPageFactory->getPage(HomePage::class)->getBreadcrumbItem(),
$this->getBreadcrumbItem(false) // set false for not clickable anchor
]);
}
}
php
class Post extends Model implements Pageable {
use HasTranslations;
public array $translatable = [
'meta_title', 'meta_description', 'title', 'html_content', 'slug'
];
public function getPage():Page {
return CreatePageFactory::make()->getPage(PostPage::class, $this);
}
}
php
class PostController extends Controller {
...
public function show(string $locale, string $slug) {
$post = $this->postRepository->findBySlug($slug);
$page = $post->getPage();
return $page->render(compact($post));
}
}