litstack / meta
v2.0.7
2024-05-13 09:39 UTC
Requires
- aw-studio/laravel-redirects: ^0.2|^0.3|^0.4|^0.5|^0.6|^0.7
- litstack/litstack: ^3.0
Requires (Dev)
- litstack/rehearsal: ^1.0
- mockery/mockery: ^1.4
- phpunit/phpunit: ^9.4
README
在您的crud-models和表单内部编辑默认元字段,并在blade模板中接收它们。
安装
该软件包可以通过composer安装并自动注册。
composer require litstack/meta
现在您可以发布和迁移您的meta模型的迁移
php artisan vendor:publish --provider="Litstack\Meta\MetaServiceProvider" --tag=migrations
php artisan migrate
用法
首先,通过使用HasMeta
特性并实现metaable
合约来准备您的Crud-Model。
use Litstack\Meta\Metaable; use Litstack\Meta\Traits\HasMeta; class Post extends Model implements Metaable { use HasMeta; }
为了在litstack中显示表单,请编辑您的模型配置。
public function show() { $page->card(function($form) { $form->seo(); }); }
要在模板中显示元字段,只需使用<x-lit-meta />
组件,并将模型的metaFields
传递给它。
@extends('app') @section('meta') <x-lit-meta :for="$post" /> @endsection
在主模板中
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> @yield('meta') </head>
默认值 / 自定义 / 覆盖
如果您想直接从模型属性中使用元属性,可以在配置中的metaAttributes
中指定它们。您还可以覆盖元方法,例如metaAuthor
,以返回动态元属性。
class Post extends Model implements Metaable { use HasMeta; protected $metaAttributes = [ 'author' => 'author.name', 'image' => 'header_image', ]; public function getHeaderImageAttribute() { // ... } public function metaTitle(): ?string { // Return a prefix: return "Awesome Blog: " . parent::metaTitle(); } }
您可以通过设置defaultMetaAttributes
来设置默认属性或添加一个defaultMeta...
方法。
class Post extends Model implements Metaable { use HasMeta; protected $defaultMetaAttribute = [ 'description' => 'description', ]; public function defaultMetaTitle() { } }