yann-soaz / laravel_seo
用于Laravel内容的SEO属性管理包
v1.1
2022-11-08 17:09 UTC
Requires
This package is auto-updated.
Last update: 2024-09-09 12:35:39 UTC
README
为通过 Laravel 和 Livewire 创建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特质为您的模型提供了多个可用的函数
某些函数可以在您的模型中重写
事件