ホームページ > バックエンド開発 > PHPチュートリアル > Laravel Moderation 拡張機能を使用して、Laravel アプリケーションにシンプルなコンテンツ モデレーション システムを実装します。

Laravel Moderation 拡張機能を使用して、Laravel アプリケーションにシンプルなコンテンツ モデレーション システムを実装します。

WBOY
リリース: 2016-06-23 13:01:30
オリジナル
1259 人が閲覧しました

1. はじめに

Laravel Moderation は、Laravel 5.* に基づいて実装されたシンプルなコンテンツ監査システムです。この拡張機能を使用して、記事、コメント、ユーザーなどのアプリケーション リソースに対するリクエストを許可または拒否します。攻撃的、破壊的、侮辱的なコンテンツをブロックしてアプリをクリーンに保つため。簡単に言うと、監査ステータスを使用してリソースが監査に合格したかどうかを判断し、この機能を Laravel Moderation 拡張パッケージに統合することです。一般的な操作プロセスは次のとおりです:

  • まず、ユーザーはリソース (記事、コメント、またはその他の Eloquent モデル) を作成します
  • 作成後、リソースは保留中または非表示の状態になります (たとえば、Post::all を通じて) () 承認されたもののみを返します) 記事)
  • バックエンド管理者がこのリソースを通過するか拒否するかを決定します
  • 管理者のレビューの下でアプリケーションを純粋に保ちます

2. インストール

Composer を介してインストールします:

config/app.php の
composer require hootlex/laravel-moderation
ログイン後にコピー

サービスプロバイダーを登録します:

'providers' => [    ...    Hootlex\Moderation\ModerationServiceProvider::class,    ...];
ログイン後にコピー

最後に、拡張設定ファイルを config ディレクトリに公開します:

php artisan vendor:publish --provider="Hootlex\Moderation\ModerationServiceProvider" --tag=config
ログイン後にコピー

3. モデル設定

モデルのレビューを有効にするには、HootlexModerationModeratable トレイトを使用できます。モデル クラスを作成し、 status 、 moduleed_by 、および modded_at フィールドを追加します。モデルはデータ テーブルに対応します。

use Hootlex\Moderation\Moderatable;class Post extends Model{    use Moderatable;    ...}
ログイン後にコピー

データベース移行ファイルを作成します:

class AddModeratioColumnsToPostsTable extends Migration{    /**     * Run the migrations.     *     * @return void     */    public function up()    {        Schema::table('posts', function (Blueprint $table) {            $table->smallInteger('status')->default(0);            $table->dateTime('moderated_at')->nullable();            //如果你想跟踪谁审核了这个模型,添加一个'moderated_by'字段            //$table->integer('moderated_by')->nullable()->unsigned();        });    }    /**     * Reverse the migrations.     *     * @return void     */    public function down()    {        Schema::table('posts', function(Blueprint $table)        {            $table->dropColumn('status');            $table->dropColumn('moderated_at');            //$table->integer('moderated_by')->nullable()->unsigned();        });    }}
ログイン後にコピー

移行コマンドを実行して、対応するフィールドをデータ テーブルのポストに追加します:

php artisan migrate
ログイン後にコピー

4. 使用例

注: ここでは、Post モデルを例として取り上げます。デモンストレーション用など、あらゆるモデルをレビューできます。

モデルを監査する

ID によってモデルを監査 (合格、不合格):

Post::approve($post->id);Post::reject($post->id);
ログイン後にコピー

またはクエリ ビルダーによって:

Post::where('title', 'Horse')->approve();Post::where('title', 'Horse')->reject();
ログイン後にコピー

クエリ モデル

デフォルトでは、レビューに合格したモデルのみが返されます。

//返回所有审核通过的模型Post::all();//返回标题为Horse的审核通过的模型Post::where('title', 'Horse')->get();
ログイン後にコピー

保留中またはレビューに失敗したモデルのクエリ:

//返回待审核postsPost::pending()->get();//返回审核不通过postsPost::rejected()->get();//返回审核通过和待审核postsPost::withPending()->get();//返回审核通过和不通过的postsPost::withRejected()->get();
ログイン後にコピー

すべてのモデルのクエリ:

//返回所有postsPost::withAnyStatus()->get();//返回所有title为Horse的模型Post::withAnyStatus()->where('title', 'Horse')->get();
ログイン後にコピー

モデルのステータス

モデルのステータスの確認に役立つ 3 つの補助関数があります:

//检查模型是否是待审核$post->isPending();//检查模型是否审核通过$post->isApproved();//检查模型是否审核不通过$post->isRejected();
ログイン後にコピー

厳密なレビュー

厳格なレビュー これは、レビューに合格したリソースのみをクエリできることを意味します。他の状態のモデルを返すには、構成を変更して厳密な監査を無効にする必要があります。その構成方法を見てみましょう。

5. 設定

グローバル設定

このファイルで次のオプションを設定できます。

  • status_column はデフォルトのステータスフィールドのステータスを表します。データテーブル内
  • moduled_at_column は、データテーブル内のデフォルトフィールド moduleed_at を表します
  • moduleed_by_column は、データテーブルmodered_by のデフォルトフィールドを表します
  • strict は、厳格なレビューを表します

モデル構成

モデル内でいくつかを定義できます変数を使用してグローバル構成をオーバーライドします

たとえば、status フィールドをオーバーライドするには、次のようにします:

const MODERATION_STATUS = 'moderation_status';
ログイン後にコピー

Modered_at フィールドをオーバーライドするには:

const MODERATED_AT = 'mod_at';
ログイン後にコピー

Modeded_by フィールドをオーバーライドするには:

const MODERATED_BY = 'mod_by';
ログイン後にコピー

厳密な監査を有効または無効にするには:

れーれー
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート