yann-soaz/laravel_seo

用于Laravel内容的SEO属性管理包

安装: 9

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

语言:Blade

v1.1 2022-11-08 17:09 UTC

This package is auto-updated.

Last update: 2024-09-09 12:35:39 UTC


README

为通过 LaravelLivewire 创建SEO管理功能而设计的模块

安装

首先,安装包然后运行迁移来创建存储SEO信息的表。

composer require yann-soaz/laravel_seo
php artisan migrate

如果Storage还未绑定,请运行以下命令

php artisan storage:link

Storage将被用于存储open-graph标签的预览图片。

使用示例

Page.php

<?php
namespace  App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;    
use YannSoaz\LaravelSEO\Traits\HasSEO;

class  Page  extends  Model {
  use HasFactory, HasSEO; // utiliser HasSEO pour activer la gestion du seo
}

views/livewire/page/edit-page.blade.php

<form wire:submit.prevent="save">
  <input type="text" wire:model="page.title" />
  <textarea wire:model="page.content"></textarea>
  {{ $page->seoFields() }} {# pour afficher les champs de formulaire seo dans le composant livewire parent #}
</form>

app/Http/Livewire/Page/EditPage.php

<?php
namespace  App\Http\Livewire\Page;

use App\Models\Page;
use Livewire\Component;
use YannSoaz\LaravelSEO\SEOEditComponent;

class  PageEdit  extends  Component
{

  public  Page $page;

  protected  $rules =  [
    'page.title'  =>  'required|string',
    'page.content'  =>  'required|string',
  ];

  public  function  mount  (Page $page)  {
    $this->page =  $page;
  }

  public  function  save  ()  {
    $this->validate();
    $this->site->save();
    $this->emit(SEOEditComponent::SAVE_EVENT); // l'évènement SAVE_EVENT provoque l'enregistrement du seo
    // un autre evènement ( SEOEditComponent::SAVE_END ) peut être écouté pour détecter la fin de l'enregistrement des métas seo
  }
  public  function  render()  {
    return  view('livewire.site-edit');
  }
}

views/pages/single.blade.php

<x-app-layout>
	<x-slot  name="head">
		{{  $page->seoHeader()  }}
	</x-slot>
<div>
	<h1>{{ $page->title }}</h1>
	<div>{{ $page->content }}</div>
</div>
</x-app-layout>

文档

HasSEO特质为您的模型提供了多个可用的函数

某些函数可以在您的模型中重写

事件