Skip to content

SEO ​

Generowanie meta danych ​

Obsługa SEO polega na dodaniu do modelu trait Modules\Seo\Traits\HasSeo.

php
use Modules\Seo\Traits\HasSeo;
use Illuminate\Database\Eloquent\Model;

class Page extends Model
{
    use HasSeo;

    ...
}

Opcjonalnym krokiem jest zdefiniowanie, z których pól powinny być automatycznie wygenerowane meta dane w przypadku, gdy dane seo nie są uzupełnione.

php
protected $defaultSeoTitleField = 'title';

protected $defaultSeoDescriptionField = 'description';

protected $defaultSeoKeywordsField = 'keywords';

Walidacja ​

Obsługa walidacji dla ustawień seo polega na dodaniu trait Modules\Seo\Traits\HasSeoRules do klasy rozszerzającej Modules\Core\Http\Requests\BaseFormRequest.

Uwaga

Roszerzenie klasy BaseFormRequest pozwala wykonać funkcję wewnątrz zaimplementowanego trait, której nazwa jest konkatenacją słowa validate oraz nazwy implementowanego trait.

php
use Modules\Seo\Traits\HasSeoRules;
use Modules\Core\Http\Requests\BaseFormRequest;

class CreatePageRequest extends BaseFormRequest
{
    use HasSeoRules;
}

Wczytywanie meta danych ​

SEO modelu można wczytać korzystając z metody loadSeo(), która jest zdefiniowana wewnątrz trait HasSeo.

php
public function show(Page $page)
{
    $page->loadSeo();

    return response()->json(new PageResource($page));
}

Zwracanie meta danych ​

php
use Modules\Seo\Http\Transformers\SeoResource;
use Illuminate\Http\Resources\Json\JsonResource;

class PageResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'seo' => SeoResource::collection($this->whenLoaded('seo')),
        ];
    }
}

TIP

W przypadku zwracania publicznych danych należy skorzystać z transformera Modules\Seo\Http\Transformers\PublicSeoResource.

Made by Moonbite