laravel - Laravel - 将查询放在自定义请求中的好习惯?
问题描述
我使用自定义查询,我也添加了一个自定义规则,我想知道将雄辩的查询放在规则中是否是“好习惯”?
对我来说这很脏,但我真的不知道该怎么做,而且我还没有找到任何答案......我必须在规则,参数......
编辑(添加代码)
<?php
namespace App\Rules;
use App\Model\Laravel\Api;
use App\Model\Laravel\Package;
use App\Model\Laravel\User;
use Illuminate\Contracts\Validation\Rule;
class ApiMax implements Rule
{
protected $user;
/**
* Create a new rule instance.
*
* @param $user
*/
public function __construct($user)
{
$this->user = $user;
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$maxApi = $this->getPackageInfo($this->user)->max_api - $this->sumApis($this->user);
if($value > $maxApi)
return false;
return true;
}
public function getPackageInfo(User $user)
{
return Package::where('id', $user->getPackageId())->first();
}
public function sumApis(User $user) {
return Api::where('user_id', $user->getId())->count();
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'You have reached the maximum number of apis with your current offer.';
}
}
提前感谢您的提示
解决方案
推荐阅读
- python - Python中有内置包吗?
- r - 使用两个动态输入更新表
- firebase - 我可以在博览会中使用 Firebase 分析吗?
- sre - Sre 生产问题及其解决方案 材料或内容?
- python - 无论文件是什么类型,如何使用 Python 加密任何文件?
- sql - 将数据从一个表插入到另一个表中,其中一列有效地匹配两者
- docker - docker-compose 与远程主机不使用 ssh
- inno-setup - 退出 Inno Setup 安装程序时出现音乐故障
- vhdl - 从 FPGA 中保存信息以供以后分析的最简单方法
- scala - Spark/Scala 不适用于 @tailrec + withColumn