Me deparei com uma inconsistência hoje nos validadores do Laravel. O caso é que se eu construir um FormRequest devolvendo no método rules() a seguinte regra:
['logradouro' => 'string|min:5']
passando o valor '' (aspas simples ) para o campo logradouro, o valor é validado corretamente, devolvendo a inconsistência com a regra de 5 caracteres.
Porém quando eu crio um validador desta outra forma:
$dados = [
[ 'logradouro' => '']
];
$regras = [
['logradouro' => 'string|min:5']
];
$v = Validator::make( $dados, $regras);
dd( $v->fails());
A mesma regra passa batida pelo validador, retornando 'false' no 'fails( )' do validador. Gostaria de entender porque existe essa diferença entre os dois métodos de validação, e sem tem alguma forma de corrigir esse comportamento.
Se for preciso mais informações a respeito posso exemplificar melhor.
Gostaria de gravar uma sequencia numérica no banco de dados. Exemplo: No programa tem um campo onde o usuário vai informar o numero inicial : Informe o numero inicial: 200 Outro campo pede quantidade gerada a partir desse numero informado: Informe a quantidade a ser gerada: 50 Um botão: Gerar A partir dai o programa tem que gerar os 50 numero a partir do numero informado e gava los em um banco de dados: 200-201-203…ate 249. Como fazer?
Estou enfrentando um problema bem chato com Java aqui em meu projetos, vejam:
2019-02-01 08:57:06.469 ERROR 18120 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause
com.microsoft.sqlserver.jdbc.SQLServerException: Nome de objeto 'db_mybank.dbo.edification' inválido.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) ~[mssql-jdbc-6.4.0.jre8.jar:na]
Percebam que ali no nome do objeto está sendo inserido um underline ou underscore como queiram, porém esse traço não é para ser exibido a inserção do mesmo faz com que o objeto não seja encontrado, o pior é que na especificação da classe está correto vejam:
import javax.persistence.Table;
@Entity
@Table(name = "tbedification", schema = "dbo", catalog = "dbmybank")
public class edification implements Serializable {
/**
*
Alguém consegue me ajuda com isso, acho que o hibernate está "zuando" alguma coisa
Estou tentando gerando uma consulta usando @query que me traga o resultado de 3 tables SQL Server, porém o Hibernate alega que uma das propriedades não pode ser resolvida, contudo já verifiquei e a tal propriedade foi criada normalmente nas classes de entidades.
O erro é nomedacoluna não pode ser resolvido, a coluna em questã é OccId
Cabeçalho da classe
@Entity
@Table(name = "tabela", schema = "dbo", catalog = "dbtabela")
public class OccurrenceChangeCancelLog implements Serializable {
corpo e atributo que da o erro:
private Integer OccId;
construtor
public OccurrenceChangeCancelLog(Integer occId) {
this.OccId = occId;
}
Get e Set:
@Column(name = "OcorrId")
public Integer getIntOcorrId() {
return this.OccId;
}
public void setIntOcorrId(Integer occId) {
this.OccId = OcorrId;
}
Estou tentando gerando uma consulta usando @query que me traga o resultado de 3 tables SQL Server, porém o Hibernate alega que uma das propriedades não pode ser resolvida, contudo já verifiquei e a tal propriedade foi criada normalmente nas classes de entidades