定制 lee-to/laravel-seo-by-url 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lee-to/laravel-seo-by-url

最新稳定版本:2.0.0

Composer 安装命令:

composer require lee-to/laravel-seo-by-url

包简介

Easy seo for Laravel and MoonShine

README 文档

README

Laravel 9+ PHP 8+

Prolog

Seo data is stored in the database in the seo table and is linked to pages based on the url, the url is unique for websites, therefore, the seo in this package is built from it

  • Easy to use
  • Not tied to entities
  • All data is cached relative to url and reset by events on the model

Installation

composer require lee-to/laravel-seo-by-url

Publish config

php artisan vendor:publish --provider="Leeto\Seo\Providers\SeoServiceProvider"
php artisan migrate

Are you a visual learner?

We've recorded a video on how to use this package. It's the best way to get started using media library

MoonShine

if you use the MoonShine, then publish the resource with this command

#for version 4+
php artisan seo:moonshine

#for version 3
php artisan seo:moonshine_old

Get started

For starters, you can choose the best usage approach for you:

  • Facade
use Leeto\Seo\Seo;

// ...

Seo::title('Hello world')
  • Helper
seo()->title('Hello world')
  • DI
use Leeto\Seo\SeoManager;

// ...

public function __invoke(SeoManager $seo)
{
    //
}
  • Ok I prefer to use the helper

Blade directives

Render meta tags

title, descriptions, keywords, og

<html>
<head>
    <!-- // ... -->

    @seo

    <!-- // ... -->
</head>

Render seo text

<div>
    @seoText('Default text')
</div>

Set and save seo data

  • set
seo()->title('Im page title')
  • set and save in database
seo()->title('Im page title', true)
  • other tags
seo()->description('Im page description')
seo()->keywords('Im page description')
seo()->text('Im page description')
seo()->og(['image' => 'link to image'])
  • get value
seo()->meta()->title()
seo()->meta()->description()
seo()->meta()->keywords()
seo()->meta()->text()
seo()->meta()->og()
  • get html tags
seo()->meta()->html()
  • save by model
use Leeto\Seo\Models\Seo;

Seo::create([
    'url' => '/',
    'title' => 'Im title'
]);

Default values

Set in seo config config/seo.php

return [
    'default' => [
        'title' => 'Im title'
    ]
]);

Inertia

Use Shared Data

class HandleInertiaRequests extends Middleware
{
    //
    public function share(Request $request)
    {
        return array_merge(parent::share($request), [
            // ...

            'seo' => [
                'title' => seo()->meta()->title(),
                'description' => seo()->meta()->description(),
                'keywords' => seo()->meta()->keywords(),
                'og' => seo()->meta()->og(),
                'text' => seo()->meta()->text(),
            ]
        ]);
    }
    //
}
import { Head } from '@inertiajs/vue3'

<Head>
  <title>{{ $page.props.seo.title }}</title>
  <meta name="description" :content="$page.props.seo.description">
</Head>

统计信息

  • 总下载量: 8.29k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 23
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 23
  • Watchers: 1
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-01-21