Motyw
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.