Maison  >  Article  >  cadre php  >  Que dois-je faire si thinkphp ne peut pas vérifier automatiquement ?

Que dois-je faire si thinkphp ne peut pas vérifier automatiquement ?

PHPz
PHPzoriginal
2023-04-10 09:05:04513parcourir

Lors du processus de développement utilisant le framework thinkphp, nous rencontrons souvent des situations qui nécessitent une vérification des données. thinkphp propose de nombreuses méthodes de vérification pratiques, mais parfois, nous constatons que peu importe comment nous l'appelons, les données ne peuvent pas être automatiquement vérifiées. Pourquoi est-ce ?

Tout d'abord, nous devons comprendre comment fonctionne la vérification automatique dans thinkphp. Lorsque nous définissons une règle de validation dans le modèle, elle se présente comme suit :

protected $validate = [
    'name'  => 'require|max:25',
    'age'   => 'number|between:1,120',
    'email' => 'email',
];

Cette définition définit un attribut de validation dans le modèle. Cet attribut est un tableau qui contient les règles qui doivent être vérifiées. Pendant l'utilisation, nous pouvons appeler la méthode $model->validate($data) pour vérifier les données. Le paramètre $data correspond aux données qui doivent être vérifiées. Si la vérification réussit, la méthode retournera vrai, sinon elle renverra un tableau de messages d'erreur. $model->validate($data)方法来对数据进行验证。$data参数是需要进行验证的数据,如果验证通过,方法会返回true,否则会返回一个错误信息的数组。

但是,在有些情况下,我们调用validate()方法时,并没有进行自动验证。这是因为,thinkphp默认情况下并不会对数据进行强制的验证。如果我们想要对数据进行验证,需要手动调用验证方法,如下所示:

// 强制进行自动验证
$model->isUpdate(true)->validate($data);

在这里,我们将isUpdate方法设置为true,表示这是一个更新操作,这样我们就可以强制进行自动验证了。

除了手动调用以外,我们还可以在模型中覆盖$updateValidate

Cependant, dans certains cas, la vérification automatique n'est pas effectuée lorsque nous appelons la méthode validate(). En effet, thinkphp n'effectue pas de vérification obligatoire des données par défaut. Si nous voulons vérifier les données, nous devons appeler manuellement la méthode de vérification, comme indiqué ci-dessous :

// 在模型中定义强制验证
protected $updateValidate = true;
Ici, nous définissons la méthode isUpdate sur true, indiquant qu'il s'agit d'une opération de mise à jour, donc que nous pouvons désormais forcer la vérification automatique.

En plus des appels manuels, nous pouvons également remplacer l'attribut $updateValidate dans le modèle pour définir une validation forcée, comme indiqué ci-dessous : 🎜rrreee🎜De cette façon, la validation des données sera automatiquement effectuée pendant le opération de mise à jour. 🎜🎜En résumé, thinkphp n'effectue pas de validation forcée sur les données par défaut. Vous devez appeler ou définir manuellement l'attribut de validation forcée dans le modèle. Lorsque vous utilisez la vérification automatique, vous devez faire attention à faire la distinction entre les opérations de nouvelle et de mise à jour, car leurs règles de vérification peuvent être différentes. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn