galtsevt / laravel-seo

描述

安装: 13

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:kontur-module

0.6 2023-06-07 04:42 UTC

This package is auto-updated.

Last update: 2024-09-28 07:31:40 UTC


README

  1. laravel 9/10

安装

  1. 安装包 composer require galtsevt/laravel-seo
  2. 执行迁移 php artisan migrate 模块用于管理元数据、面包屑导航以及生成网站地图。

使用方法

通过使用 trait Galtsevt\LaravelSeo\Traits\HasSeo 扩展模型,添加该特质后,模型在创建和更新时将自动搜索SEO。

添加 SitemapContract 接口。
Galtsevt\\LaravelSeo\\Interfaces\\SitemapContract 

<?php

namespace Kontur\News\App\Models;


use Galtsevt\LaravelSeo\App\Interfaces\SitemapContract; // [tl! add]
use Galtsevt\LaravelSeo\App\Traits\HasSeo; // [tl! add]

class News extends Model implements SitemapContract
{
    use HasFactory, HasSeo;
}

默认情况下,网站地图在访问控制器时实时生成,但将来,特别是由于商店的需要,您可能需要通过在控制台运行php来生成网站地图。

每天午夜自动生成网站地图

$schedule->call(function () {  
    $sitemapGenerator = new SiteMapGenerator();  
    $sitemapGenerator->saveToFile();  
})->dailyAt('1:00');

面包屑导航

通过 Galtsevt\LaravelSeo\Facades\Seo 门面添加面包屑导航,可以添加一个元素

Seo::breadcrumbs()->add('Name', 'Url'); // Один элемент

也可以添加多个元素

Seo::breadcrumbs()->addList([
  'url' => 'name',
  'url1' => 'name1',
]);  // несколько элементов

获取整个列表

Seo::breadcrumbs()->getAll();

通过预定义的 blade 组件输出

<x-laravel-seo::breadcrumbs/>

SEO 数据

通过门面 Galtsevt\LaravelSeo\Facades\Seo 访问元数据

Seo::metaData();

从模型中提取SEO关系

Seo::metaData()->prepare($news)

提取SEO关系,并在不存在时尝试从数据库中请求模板数据

Seo::metaData()->prepare($news)->withTemplate();

模板SEO

模板SEO与模型相关联,注册时只需要提供将在管理面板中显示的名称以及您想要注册的模型。

通过模块的 ServiceProvider 中的 Seo 门面进行添加。

Seo::template()->add(
    new TemplateSeo(
        name: 'Новости',
        model: News::class,
    )
);