首页 > 解决方案 > 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.';
    }
}

提前感谢您的提示

标签: laravel

解决方案


推荐阅读