Как использовать переменные конфигурации в правилах валидации в обычной модели? - PullRequest
0 голосов
/ 01 января 2019

Как я могу использовать переменную конфигурации в правилах проверки?
Это мой model.php

public static $rules = [
        'transaction_limit_per_day' => 'required|numeric|max:'.config('agripoints.cropAgentTransactionLimit')
];

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Это что-то связанное с Php http://php.net/manual/en/language.variables.scope.php. Если вы будете ссылаться на этот документ, он говорит, что вы не можете инициализировать статическую переменную с другой переменной в нашем случае config('agripoints.cropAgentTransactionLimit').

Вы можете сделать этос разными способами.Не стесняйтесь выбирать из следующих решений.

Решение 1:

public $rules;

public function __construct()
{
    $this->rules =  [
            'transaction_limit_per_day' => 'required|numeric|max:'.config('agripoints.cropAgentTransactionLimit')
        ];
}

После этого вы можете получить к нему следующий доступ:

$model = new User; // use your own model here.
$model->rules; // this will let you access rules

Решение 2: (Лично я бы использовал этот подход)

public function rules()
    {
        return [
            'transaction_limit_per_day' => "required|numeric|max:".config('agripoints.cropAgentTransactionLimit'),
        ];
    }

После этого вы можете получить к нему доступ так:

$model = new User; // use your own model here.
$model->rules(); // this will let you access rules

Надеюсь, это поможет.Удачного кодирования.

0 голосов
/ 01 января 2019

Вы можете использовать любую переменную внутри правил проверки laravel, используя двойные кавычки, как если бы вы использовали обычную строку двойных кавычек.

$transaction_limit = config('agripoints.cropAgentTransactionLimit');

public static $rules = [ 
       'transaction_limit_per_day' => "required|numeric|max:$transaction_limit" 
];
...