recherche

Maison  >  Questions et réponses  >  le corps du texte

L'utilisation de l'ajout de données dans Laravel utilise valdiate pour vérifier si les données existent dans la table relationnelle

Lors de l'ajout de données, est-il possible de vérifier si les données existent dans la table relationnelle via valdiate ?

黄舟黄舟2791 Il y a quelques jours564

répondre à tous(3)je répondrai

  • 某草草

    某草草2017-05-16 16:50:44

    https://laravel.com/docs/5.3/...

    répondre
    0
  • 迷茫

    迷茫2017-05-16 16:50:44

    1. Vous pouvez personnaliser la vérification, cela semble un peu compliqué... Mon niveau est limité, vous pouvez lire les documents officiels par vous-même

    2. Vous pouvez également y penser comme une méthode simple et grossière, écrire la logique de vérification de votre requête de table de jointure dans Controller et rediriger manuellement et générer une erreur s'il y a une exception, comme indiqué dans le code suivant

        public function store(Request $request)
        {
            $this->validate($request, [
                'password' => 'required|min:6|max:100',
                'newPassword' => 'required|min:6|max:100',
                'newPasswordConfirm' => 'required|same:newPassword|min:6|max:100',
            ], [], [
                'password' => '旧密码',
                'newPassword' => '新密码',
                'newPasswordConfirm' => '确认新密码',
            ]);
    
            #这个地方就是个自定异常的演示, 并不是你要的连表查询, 这里只提供一个思路
            if (!\Hash::check($request->get('password'), \Auth::user()->password)) {
                return redirect()->back()->withErrors(['password' => '旧密码错误']);
            }
    
        }

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 16:50:44

    Oui, utilisez des existsrègles, telles que

    'exists:表名,字段名'
    

    Selon votre situation, utiliser les règles intégrées ne suffit pas et vous devez créer vous-même de nouvelles règles. Voici un exemple de création d'une règle pour vérifier le chinois

    .
    $validator = app('validator');
    $validator->extend('chinese', function($attribute, $value, $parameters, $validator) {
        return Validator::chinese($value);
    });
    $validator->replacer("chinese", function($message, $attribute, $rule, $parameters) {
        if ($message == 'validation.chinese') {
            return "属性 {$attribute} 必须是合法的中文";
        }
    
        return $message;
    });
    

    Reportez-vous à la section Règles de validation personnalisées du document pour plus de détails.

    répondre
    0
  • Annulerrépondre