starfolksoftware / factchecks
将事实核查添加到您的Laravel应用中
Requires
- php: ^7.2.5
- illuminate/support: ~5.6.0|~5.7.0|~5.8.0|^6.0|^7.0
Requires (Dev)
- orchestra/testbench: ^3.6|^5.0
- phpunit/phpunit: ^7.0|^8.0
This package is auto-updated.
Last update: 2021-09-09 05:45:10 UTC
README
为您的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)。有关更多信息,请参阅 许可文件