ctf0/tagos

此包已废弃且不再维护。未建议替换包。

基于spatie/laravel-tags在laravel中管理标签的GUI

维护者

详细信息

github.com/ctf0/Tagos

主页

源代码

问题

资助包维护!
ctf0

安装: 23

依赖者: 0

建议者: 0

安全: 0

星标: 14

关注者: 3

分支: 1

开放问题: 0

语言:Vue

v1.3.1 2020-12-01 16:01 UTC

This package is auto-updated.

Last update: 2023-01-03 23:34:58 UTC


README

基于spatie/laravel-tags的标签编辑器和选择器。

编辑器

41531521-de565f66-72f3-11e8-8a2a-e07ea1002e1b.png

选择器

38068467-9407081a-3311-11e8-83a5-eea196fb00e3.png

  • 包需要Laravel v5.5+

安装

  • composer require ctf0/tagos

  • 使用以下命令发布包资源

    php artisan vendor:publish --provider="ctf0\Tagos\TagosServiceProvider"
    php artisan vendor:publish --provider="Spatie\Tags\TagsServiceProvider" --tag="migrations"

  • 安装后,运行php artisan tagos:setup以添加

    • 包路由到routes/web.php
    • 包资源编译到webpack.mix.js
  • 安装依赖

    yarn add vue vue-awesome@v2 vue-notif vue-tippy@v2 axios fuse.js
  • 将以下单行命令添加到您的主js文件中,并运行npm run watch以编译您的js/css文件。

    // app.js
    
    window.Vue = require('vue')
    
    require('../vendor/Tagos/js/manager')
    
    new Vue({
        el: '#app'
    })

功能

  • 标签编辑器 & 选择器。

  • 在您输入时显示标签建议。

  • 轻松添加新标签名称 & 类型。

  • 按标签和类型显示标记项。

  • 在标签索引中按名称搜索标签。

  • 快捷键

    交互 键盘 鼠标(点击)
    显示所有标签 (输入) 2x
    添加新标签 Enter *
    隐藏标签列表 Esc 任何地方

使用

  • 使用php artisan migrate迁移标签表

  • 还有一个seeder可以帮助您快速开始

    // database/seeds/DatabaseSeeder.php
    
    class DatabaseSeeder extends Seeder
    {
        /**
         * Run the database seeds.
         */
        public function run()
        {
            //...
    
            $this->call(TagsTableSeeder::class);
        }
    }
  • HasTags特质添加到您的模型中,例如post

    use ctf0\Tagos\Traits\HasTags;
    use Illuminate\Database\Eloquent\Model;
    
    class Post extends Model
    {
        use HasTags;
    }

获取所有标签

app('cache')->get('tagos');

附加标签

  • 显示标签选择器

    • 例如,posts create view

      @include('Tagos::partials.add')
    • 例如,posts edit view

      @include('Tagos::partials.add', ['old' => app('tagos')->getModelTags($post)])
  • 保存标签

    • store()

      $model = Post::create([...]);
      
      app('tagos')->saveTags($model, $request);
    • update()

      $model = Post::find($id)->update([...]);
      
      app('tagos')->saveTags($model, $request);

显示模型标签

@include('Tagos::partials.display', [
    'tags' => $post->tags,
    'showType' => true // whether to show the tag type or not
])

路由

方法 URL 名称 操作
GET tags/editor tagos.editor \ctf0\Tagos\Controllers\TagosController@editor
GET tags tagos.index \ctf0\Tagos\Controllers\TagosController@index
GET tags/type/{type} tagos.index_type \ctf0\Tagos\Controllers\TagosController@indexByType
GET tags/{slug} tagos.show \ctf0\Tagos\Controllers\TagosController@show
GET tags/type/{type}/tag/{slug} tagos.show_type \ctf0\Tagos\Controllers\TagosController@showByType