kekoapp / laravel-meta-tags
轻松在Laravel 5.4控制器中设置元和OG标签
v5.4.3
2017-02-15 16:59 UTC
Requires
- php: >=5.5.9
- illuminate/support: ~5.1
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ~5.0
README
使用此包,您可以从Laravel控制器中管理头部元和OG标签。保持最新状态以适应最新的Laravel版本。
虽然此原始包有一些分支,但这是唯一一个持续更新以适应Laravel 5.4的分支!
最新包版本:5.4.3
当前支持的Laravel版本:5.4.*
安装
从命令行运行
$ composer require Cookizza/laravel-meta-tags
一旦安装了Meta Tags,您需要将服务提供者注册到应用程序中。打开 config/app.php 并找到 providers 键。
'providers' => array( Cookizza\LaravelMetaTags\MetaTagsServiceProvider::class, )
Meta Tags还包含一个门面,它提供用于创建集合的静态语法。您可以在 config/app.php 文件的 aliases 键中注册门面。
'aliases' => array( 'MetaTag' => Cookizza\LaravelMetaTags\Facades\MetaTag::class, )
发布配置
在项目的根目录下从命令行运行此操作
$ php artisan vendor:publish --provider="Cookizza\LaravelMetaTags\MetaTagsServiceProvider"
一个配置文件将被发布到 config/meta-tags.php。
Twitter Cards和OpenGraph
这些选项的设置可以在 config/meta-tags.php 文件中找到。
Twitter Cards
{!! MetaTag::twitterCard() !!}
OpenGraph
{!! MetaTag::openGraph() !!}
示例
app/Http/Controllers/Controller.php
<?php namespace App\Http\Controllers; use Illuminate\Foundation\Bus\DispatchesCommands; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; use MetaTag; abstract class Controller extends BaseController { use DispatchesCommands, ValidatesRequests; public function __construct() { // Defaults MetaTag::set('description', 'Blog Wes Anderson bicycle rights, occupy Shoreditch gentrify keffiyeh.'); MetaTag::set('image', asset('images/default-share-image.png')); } }
app/Http/Controllers/HomeController.php
<?php namespace App\Http\Controllers; use MetaTag; class HomeController extends Controller { public function index() { // Section description MetaTag::set('title', 'You are at home'); MetaTag::set('description', 'This is my home. Enjoy!'); return view('index'); } public function detail() { // Section description MetaTag::set('title', 'This is a detail page'); MetaTag::set('description', 'All about this detail page'); MetaTag::set('image', asset('images/detail-logo.png')); return view('detail'); } public function private() { // Section description MetaTag::set('title', 'Private Area'); MetaTag::set('description', 'You shall not pass!'); MetaTag::set('image', asset('images/locked-logo.png')); return view('private'); } }
resources/views/layouts/app.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ MetaTag::get('title') }}</title>
{!! MetaTag::tag('description') !!}
{!! MetaTag::tag('image') !!}
{!! MetaTag::openGraph() !!}
{!! MetaTag::twitterCard() !!}
{{--Set default share picture after custom section pictures--}}
{!! MetaTag::tag('image', asset('images/default-logo.png')) !!}
</head>
<body>
@yield('content')
</body>
</html>