v0.1.1 2020-08-28 04:06 UTC

This package is auto-updated.

Last update: 2024-05-28 12:48:02 UTC


README

As the title says, this package config the Search Engine Optimization in your laravel models, even save the SEO in your database if you wanted to

Installation

You can install the package via composer:

composer require claudiusnascimento/seo:0.1.1

Add SeoServiceProvider in config\app.php service providers array

ClaudiusNascimento\Seo\SeoServiceProvider::class

Add SeoFacade in config\app.php aliases array

'Seo' => ClaudiusNascimento\Seo\SeoFacade::class

Add the trait in your model

use ClaudiusNascimento\Seo\Traits\SeoTrait;

class Page
{
    use SeoTrait;
}

Publish the config file (not mandatory)

php artisan vendor:publish --provider="ClaudiusNascimento\Seo\SeoServiceProvider" --tag="config"

Usage

Now, you can set the SEO in your controllers, like so

public function homePage()
{
    $page = Page::find(1);

    \Seo::setTitle('Home Page');
}

Add the following, in the appropriate location, to generate the meta tags

{!! \Seo::generate() !!}

This line will generate the SEO HTML meta tags.

Saving in Database

If you want, and I higly recomend, you can save the SEO in the database.

Migrate the seo table

php artisan migrate --path=vendor/claudiusnascimento/seo/database/migrations

In your edit model view, put the follow html

{{ $model->generateSeo() }}

This line will display the form do store the seo in your database. You can put this in other location, BUT, will need the $model instance.

How this works

To generate the forms to store SEO, the package need the model id and model relation, the ID will get from $model->id, and the seo relation will get automatically from class_basename. Is higly recomended you change this behaviour.

In your model you can add the property:

public $seo_relation = 'pages'; // for example

Or, you can add a method:

public function getSeoRelation()
{
    return 'pages';
}

Now, the way you set the SEO in your controllers will change

public function homePage()
{
    $page = Page::find(1);

    \Seo::setModel($page);
}

And the code will get the SEO store in your edit views

*** you can put the seo form to store the SEO in any location. Just the model object is necessary ***

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email cau@claudiusnascimento.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.