Validation unicité sur multiple colonnes

Comment valider une clé unique composite avec Laravel ?

Je vois beaucoup de packages qui, lorsqu’ils ont besoin d’une unicité sur une « clé composite », ont recourt au package « unique_with Validator Rule For Laravel » (felixkiss/uniquewith-validator) pour la validation des FormRequest.

Ce dernier s’utilise par exemple de cette façon :

1'email' => 'unique_with:customers,shop_id',

Ici l’adresse email d’un client doit être unique dans une boutique ; la clé d’unicité est la composition « email-shop_id ».

Pour ignorer un id donné (dans le cas de la modification) :

1'email' => 'unique_with:customers,shop_id,'.$id,

Sauf que le package mentionné ci-dessus, ne semble plus maintenu et qu’il y a la possibilité de le faire avec la règle de validation « unique » native de Laravel :

1'email' => Rule::unique('customers')->where(function ($query) {
2 return $query->where('boutique_id', $this->shop_id);
3})

Et pour ignorer l’id :

1'email' => Rule::unique('customers')->where(function ($query) {
2 return $query->where('boutique_id', $this->shop_id);
3})->ignore($id)

Détails dans la documentation https://laravel.com/docs/validation#rule-unique