# SEO
# Generowanie meta danych
Obsługa SEO polega na dodaniu do modelu trait Modules\Seo\Traits\HasSeo.
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.
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.
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.
public function show(Page $page)
{
$page->loadSeo();
return response()->json(new PageResource($page));
}
# Zwracanie meta danych
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.
← Menu