starfolksoftware/factchecks

此包已被废弃且不再维护。没有建议的替代包。

将事实核查添加到您的Laravel应用中

v1.2.0 2020-05-07 11:54 UTC

This package is auto-updated.

Last update: 2021-09-09 05:45:10 UTC


README

Latest Version on Packagist Build Status Total Downloads

为您的Laravel Eloquent模型添加关联事实核查的能力。

$post = Post::find(1);

/**
 * Attach a factcheck to this model.
 *
 * @param string $claim
 * @param string $conclusion
 * @return \Illuminate\Database\Eloquent\Model
 */
$post->factcheck('Messi is the great', 'You cant be wrong with that');

/**
 * Attach a factcheck to this model as a specific user.
 *
 * @param Model|null $user
 * @param string $claim
 * @param string $conclusion
 * @return \Illuminate\Database\Eloquent\Model
 */
$post->factcheckAsUser($user, 'Messi is the great', 'You cant be wrong with that');

安装

您可以通过composer安装此包

composer require starfolksoftware/factchecks

该包将自动注册自己。

您可以使用以下命令发布迁移

php artisan vendor:publish --provider="StarfolkSoftware\Factchecks\FactchecksServiceProvider" --tag="migrations"

迁移发布后,您可以通过运行迁移来创建media-table

php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="StarfolkSoftware\Factchecks\FactchecksServiceProvider" --tag="config"

用法

注册模型

为了让您的模型能够接收事实核查,请将HasFactchecks特性添加到模型类中。

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use StarfolkSoftware\Factchecks\Traits\HasFactchecks;

class Post extends Model
{
    use HasFactchecks;
    ...
}

创建事实核查

要为可评论的模型创建评论,您可以使用comment方法。它接收要存储的评论字符串。

$post = Post::find(1);

$factcheck = $post->factcheck(array([
  'claim' => 'Messi is the greatest of all time',
  'conclusion' => 'You cant be wrong with that'
]));

事实核查方法返回新创建的事实核查类。

有时您可能还需要代表其他用户创建事实核查。您可以使用factcheckAsUser方法并传入应与该事实核查关联的用户模型。

$post = Post::find(1);

$factcheck = $post->factcheckAsUser($yourUser, array([
  'claim' => 'Messi is the greatest of all time',
  'conclusion' => 'You cant be wrong with that'
]));

自动批准事实核查

如果您想自动批准特定用户(和/或模型)的事实核查,可以让您的User模型实现以下接口和方法

namespace App\Models;

use StarfolkSoftware\Factchecks\Contracts\Factchecker;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements Factchecker
{
  /**
   * Check if a comment for a specific model needs to be approved.
   * @param mixed $model
   * @return bool
   */
  public function needsFactcheckApproval($model): bool
  {
    return false;    
  } 
}

needsFactcheckApproval方法接收您想添加事实核查的模型实例,您可以选择返回true将事实核查标记为未批准,或者返回false将事实核查标记为批准

自动批准事实核查

如果您想自动批准特定用户(和/或模型)的事实核查,可以让您的User模型实现以下接口和方法

namespace App\Models;

use StarfolkSoftware\Factchecks\Contracts\Factchecker;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements Factchecker
{
  /**
   * Check if a comment for a specific model needs to be approved.
   * @param mixed $model
   * @return bool
   */
  public function needsFactcheckApproval($model): bool
  {
    return false;    
  } 
}

needsFactcheckApproval方法接收您想添加事实核查的模型实例,您可以选择返回true将事实核查标记为未批准,或者返回false将事实核查标记为批准

提交事实核查

默认情况下,您创建的所有事实核查都保存为草稿且未批准 - 这只是一个名为submitted_at的datetime列,您可以在视图/控制器中使用它来筛选出您可能还不希望显示的事实核查。

要提交单个评论,您可以在Factcheck模型上使用submit方法,如下所示

$post = Post::find(1);
$factcheck = $post->factchecks->first();

$factcheck->submit()

批准事实核查

提交事实核查后,旅程中的下一阶段是批准 - 这只是一个名为approved_at的datetime列,您可以在视图/控制器中使用它来筛选出您可能还不希望显示的事实核查。

要批准单个事实核查,您可以在Factcheck模型上使用approve方法,如下所示

$post = Post::find(1);
$factcheck = $post->factchecks->first();

$factcheck->approve();

发布事实核查

在批准事实核查后,最终阶段是批准 - 这只是一个名为 published_at 的日期时间列,您可以在视图/控制器中使用它来过滤掉您可能还不希望显示的事实核查。

要批准单个事实核查,您可以使用 Factcheck 模型中的 publish 方法,如下所示

$post = Post::find(1);
$factcheck = $post->factchecks->first();

$factcheck->publish();

检索事实核查

使用 HasFactchecks 特性的模型可以通过 factchecks 关系访问其事实核查

$post = Post::find(1);

// Retrieve all factchecks
$factchecks = $post->factchecks;

// Retrieve only drafted factchecks
$drafts = $post->factchecks()->draft()->get();

// Retrieve only approved factchecks
$approved = $post->factchecks()->approved()->get();

// Retrieve only published factchecks
$published = $post->factchecks()->published()->get();

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 变更日志

贡献

有关详细信息,请参阅 贡献指南

安全

如果您发现任何与安全相关的问题,请通过电子邮件 frknasir@yahoo.com 反馈,而不是使用问题跟踪器。

鸣谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件