ctf0 / tagos
此包已废弃且不再维护。未建议替换包。
基于spatie/laravel-tags在laravel中管理标签的GUI
v1.3.1
2020-12-01 16:01 UTC
Requires
- ctf0/package-changelog: *
- illuminate/support: >=5.5 <9.0
- spatie/laravel-tags: *
README
基于spatie/laravel-tags的标签编辑器和选择器。
编辑器
选择器
- 包需要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 |