Я хочу использовать динамическое регулярное выражение для проверки модели в yii2, например, мы используем регулярное выражение, как показано ниже:
[['password'], 'match', 'pattern' => '/^[A-Za-z0-9_@%&*]{6,32}$/'],
теперь я хочу загрузить значение шаблона из базы данных. Является ли это возможным? Если это, пожалуйста, объясните свою душу. Спасибо всем.
Попробуйте присвоить регулярное выражение переменной var
$myRegExp = " '/^[A-Za-z0-9_@%&*]{6,32}$/'";
тогда
[['password'], 'match', 'pattern' => $myRegExp],
Вы можете создать подходящий класс для хранения и получить базу данных строки регулярных выражений regexp. например: MyDBRegExpModel
с функцией getMyRegExp ($ param) получить нужное значение.. и последний добавить свой доступ к db до возврата и назначения r (модель) правил
В вашей модели
class MyModel extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return ......;
}
/**
* @inheritdoc
*/
public function rules()
{
$myModel = MyDBRegExpModel::getMyRegExp($param);
return [
......
[['password'], 'match', 'pattern' => $myModel->myRegExp],
......
];
}