ahmet / laravel-flag-system
向数据库添加旗帜并管理它们。
This package is auto-updated.
Last update: 2024-09-12 06:40:20 UTC
README
注意:项目尚未准备好发布!稳定版本1.0即将发布。
安装
使用以下命令将laravel-flag-system添加到composer.json中
$ composer require ahmetcelikezer/laravel-flag-system
如果使用Laravel 5.5或更高版本,Laravel包自动发现将自动添加此服务提供程序。
如果您使用Laravel 5.4或更早版本,必须手动添加提供程序。请按照以下步骤操作
- 转到/config/app.php
- 将ahmetcelikezer\laravelFlagSystem\FlagSystemServiceProvider::class添加到'providers'数组中
警告:默认表名是:"flags","flag_relations",如果您已经使用这些名称之一创建了任何表,您可以在包位置/src/config.php中更改表名。
接下来,该包需要创建自己的迁移,因此您必须使用以下Laravel的迁移命令
$ php artisan migrate
如何使用
让我们举一个例子来更好地解释:为了更容易理解这个包,我们有一个基于电子商务应用的假设项目。现在我们将学习如何在项目中使用这个包。
创建新的旗帜
创建新的旗帜就像创建规则或类别或任何基于您想象的东西一样。您的应用数据库中的任何表及其记录都可以有一个或多个旗帜。
单个创建
注意:所有旗帜名称都将自动在插入前转换为小写并右修剪。
我们想创建一个"discount"旗帜来与我们的产品一起使用,所以我们的代码将类似于这个
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->title = "discount"; // Define the flag name $flagsystem->create(); // Execute the create method
现在我们可以使用"discount"旗帜了,创建方法返回一个布尔变量,如果创建成功则返回true,否则返回false。
批量创建
您也可以一次创建多个旗帜。
现在我们想要创建3个新的旗帜来使用,它们将是"adult"、"videogame"、"phone"。
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->title = ["adult", "vidaogame", "phone"]; // Define the flag names as array $flagsystem->create(); // Execute the create method
这就像单个创建,只是创建多个旗帜。
更新旗帜名称
我们总是可能犯错,并且可能在事后才发现... 幸运的是,对于任何事情来说,都不算太晚,如您所见,我们在创建"videogames"旗帜时犯了一个错误。它应该是"videogames",但我们只创建了"vidaogames"。别担心,我们可以更新它。
通过旗帜标题
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->flag = "vidaogame"; // Old(Target) Flag Title $flagsystem->title = "videogame"; // New Flag Title $flagsytem->updateFlag();
通过旗帜ID
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->id = 3; // Old(Target) Flag ID $flagsystem->title = "videogame"; // New Flag Title $flagsytem->updateFlag();
删除旗帜
删除选定的旗帜,同时它首先运行disconnectAll方法。因此,在删除成功后,没有数据包含该旗帜。
您不能撤销此命令,删除旗帜后将无法使用并完全删除。
通过标题删除旗帜
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->flag = 'im useless flag'; $flagsystem->removeFlag(); // This will remove the flag
通过ID删除旗帜
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->id = 7; $flagsystem->removeFlag(); // This will remove the flag
旗帜关系
旗帜关系是旗帜和用户表数据之间的管理。
将旗帜添加到数据
此方法将旗帜或旗帜添加到任何表中的任何数据。例如,我们将"discount"添加到"products"表上的产品记录中。
通过标题将旗帜添加到数据
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->flag = "discount"; // Flag name to add $flagsystem->target = "products"; // Target data table name $flagsystem->dataID = 434; // Target data id in table $flagsystem->addFlag(); // This will add the flag to data
通过ID将旗帜添加到数据
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->id = 1; // Flag id to add $flagsystem->target = "products"; // Target data table name $flagsystem->dataID = 434; // Target data id in table $flagsystem->addFlag(); // This will add the flag to data
将多个旗帜添加到数据
您可以一次性添加多个标志为一个数组,就像上面的示例一样。区别在于,您不是以对象的形式定义参数,而是在数组中定义这些参数。在定义目标标志时,您可以在同一个数组中以id或title的形式定义它。
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->addFlag([ ['id' => 1, 'target' => 'products', 'dataID' => 434], // Add Flag by ID ['flag' => 'discount', 'target' => 'products', 'dataID' => 38], // Add Flag by Title ['flag' => 'new', 'target'=>'users', 'dataID'=>8], // Add Flag by Title ]);
断开旗帜连接
断开标志,从包含该标志的每个数据中移除目标标志。但是标志不会被删除。您不需要重新创建标志。
例如,我们不想以任何折扣出售我们的产品,所以我们想清除“折扣”标志下的每个项目,我们不想删除“折扣”标志,因为我们可能希望在以后以折扣价出售任何产品。因此,我们可以使用 disconnectFlag 方法。
按标志标题断开连接
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->flag = "discount"; // Flag ID $flagsytem->disconnectFlag("products");
按标志ID断开连接
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->id = 1; // Flag ID $flagsytem->disconnectFlag("products");
现在我们没有包含“折扣”标志的产品,但我们仍然保留“折扣”标志以供将来使用或用于其他表格。
按ID断开全部连接
从包含该标志的每个数据及其对应的表中断开标志。例如;我们有一个“new”标志,用于在“users”表中标记新用户,在“comments”表中标记新评论,在“products”表中标记最新产品。我们不希望在应用程序的任何数据上使用“new”标志。因此,此命令将删除与所有数据和所有表的全部关系。
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->id = 8; $flagsystem->disconnectAll(); // This will disconnect the flag
按标题断开全部连接
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->flag = 'new'; $flagsystem->disconnectAll(); // This will disconnect the flag
控件
查询特定旗帜的数据
<?php use ahmetcelikezer\laravelFlagSystem\classes\FlagSystem; // Required library // Create a new FlagSystem object $flagsystem = new FlagSystem; $flagsystem->flag = 'adult'; // Flag title to search $flagsystem->target = 'products'; // Search target table $flagsystem->dataID = 765; // Search target record id // hasFlag method returns boolean if($flagsystem->hasFlag()){ echo 'Product 765 has adult flag'; }
您也可以通过标志ID进行查询
<?php // Create a new FlagSystem object $flagsystem->id = 8; // Flag id to search