Laravel 5.5验证器

时间:2018-02-18 12:27:35

标签: php laravel laravel-5.5

在laravel中是否有办法选择如何选择存储在数据库中的电子邮件?

例如,如果我想要一封唯一的电子邮件,请使用“unique:users”,如下所示:

<h:form>
        <p:wizard flowListener="#{kontroler.sledeciKorak}">
        <p:tab id="personal" title="Festivalu">
            <p:panel header="Detalji festivala">
                <p:messages />
                <h:panelGrid columns="2" >

                    <h:outputText value="Naziv: " />
                    <p:inputText value="#{kontroler.noviFestival.naziv}" required="true" requiredMessage="Morate uneti naziv" />

                    <h:outputText value="Mesto: " />
                    <p:inputText value="#{kontroler.noviFestival.mesto}" required="true" requiredMessage="Morate uneti mesto" />


                    <h:outputText value="Datum pocetka festivala: " />
                    <p:calendar  value="#{kontroler.noviFestival.datumOd}"  required="true" requiredMessage="Morate uneti datum pocetka festivala" /> 

                    <h:outputText value="Datum datum kraja festivala: " />
                    <p:calendar  value="#{kontroler.noviFestival.datumOd}"  required="true" requiredMessage="Morate uneti datum kraja festivala" /> 


                    <h:outputText value="Opis: " />
                    <p:inputTextarea rows="4" cols="50" value="#{kontroler.noviFestival.opis}" required="true" requiredMessage="Morate uneti opis festivala" />

                    <h:outputText value="Maksimalan broj karta za rezervaciju: " />
                    <p:inputText value="#{kontroler.noviFestival.maxBrRez}" required="true" requiredMessage="Morate uneti maksimalan broj karta za rezervisanje" />

                </h:panelGrid>
            </p:panel>
        </p:tab>

        <p:tab id="address" title="Projekcije festivala">
            <p:panel header="Pravljenje projekcije na festivalu">

                <p:panelGrid columns="2">
                    <h:outputText value="Izabrati film: " />
                    <p:selectOneMenu value="#{kontroler.imeFilma}">
                        <f:selectItems  value="#{kontroler.sviOpisiFilmova}" />
                    </p:selectOneMenu>



                    <h:outputText value="Izabrati lokaciju: " />
                    <p:selectOneMenu value="#{kontroler.imeLokacije}">
                        <f:selectItems  value="#{kontroler.sviOpisiLokacija}" />
                    </p:selectOneMenu>

                    <h:outputText value="Sala: " />
                    <p:inputText value="#{kontroler.trenutnaProjekcija.sala}" required="true" requiredMessage="Morate uneti salu" />

                    <h:outputText value="Broj karta: " />
                    <p:inputText value="#{kontroler.trenutnaProjekcija.brSlobodnihKarta}" required="true" requiredMessage="Morate uneti broj karta" />

                    <h:outputText value="Cena karte: " />
                    <p:inputText value="#{kontroler.trenutnaProjekcija.cenaKarte}" required="true" requiredMessage="Morate uneti cenu karte" />

                </p:panelGrid>

            </p:panel>
        </p:tab>
    </p:wizard>
    </h:form>

但我想知道的是它是否可以检查给定的电子邮件是否存储在数据库中。是否可以使用验证器执行此操作?

2 个答案:

答案 0 :(得分:1)

如果您想确定数据库中不存在,请使用unique规则:

unique:table

如果您想确保数据库中存在记录,请使用exists规则:

exists:table

答案 1 :(得分:1)

您可以使用existsenter image description here)关键字:

$validator = Validator::make($request->all(), [
    'email' => 'required|unique:users|exists:users',
    'password' => 'required'
]);

或者你可以这样做:

$validator = Validator::make($request->all(), [
    'email' => 'required|unique:users',
    'password' => 'required'
]);

if ($validator->fails()) {
    echo 'That email address is already registered';
}