Laravel – Error al intentar crear esta migración

Buenas tengo 2 tablas que tienes sus propios id, la tabla “ingredientes” seria la tabla padre y la tabla “recetas_ingredientes” quiero relacionar el campo “real_id” de la tabla ingredientes con el campo “ingrediente_id” de la tabla recetas_ingredientes.

Como podeis ver los declaro integer y unsigned en ambos lados pero me da un fallo de constraint key que no consigo ver el problema.

Migration 1

public function up()
{
    Schema::create('ingredientes', function (Blueprint $table) {
        $table->increments('id')->unsigned();
        $table->integer('real_id')->unsigned();
        $table->string('descripcion');
        $table->integer('orden')->default('10');
        $table->boolean('activo')->default('1');
        $table->boolean('mostrar')->default('1');
        $table->timestamps();
    });
}

Migration 2

public function up()
{
    Schema::create('recetas_ingredientes', function (Blueprint $table) {
        $table->id();
        $table->integer('receta_id')->unsigned();
        $table->integer('ingrediente_id')->unsigned();
        $table->timestamps();

        $table->foreign('receta_id')->references('id')->on('recetas')->unsigned();
        $table->foreign('ingrediente_id')->references('real_id')->on('ingredientes')->unsigned();
    });
}

El error que recibo es este

PDOException::(“SQLSTATE(HY000): General error: 1822 Failed to add the foreign key constraint. Missing index for constraint ‘recetas_ingredientes_ingrediente_id_foreign’ in the referenced table ‘ingredientes'”)

En esta linia

 $table->foreign('ingrediente_id')->references('real_id')->on('ingredientes')->unsigned();

javascript – Está ocorrendo “Cannot set property ‘innerHTML’ of null” porém não estava ocorrendo antes

Eu coloquei o HTML/CSS/JS no github para facilitar para vocês me ajudar.

Então, estava funcionando de boa o code, de repente parou e começou a dar erro na linha do elementoLista.innerHTML = ” e na função mostraTarefas() espero que me ajudem sério fiz de tudo, apaguei o código, mudei isso, aquilo, mas acabou piorando então resolvi voltar para o erro inicial, me ajudem.

https://github.com/pedrolac18/listadeafazeres/blob/main/index.html

python – Meu código está computando (somando) uma quantidade maior que eu desejo. Não estou sabendo resolver

O programa consiste em um jogo de lógica no qual devo gerar um vetor aleatório com quatro números (entre 1 e 4) e depois dar 10 chances para um usuário digitar também 4 números entre 1 e 4. A cada rodada devo informar a quantidade de número que o usuário acertou e quantas posições.

Exemplo:
Vetor sorteado = 1 , 2 , 3 , 4. (Não aparece para o usuário).

Números digitados pelo usuário = 1, 2 , 2 , 2.

Resposta = Acertou 2 número e 2 posições.

Contudo, no meu código, caso o usuário digite número iguais e este número estiver no vetor sorteado, ele contabiliza mais de uma vez.

Utilizando o exemplo acima, meu resultado está printando 3 acertos e 1 posição correta.

java – Meu campo EditText com DatePickerDialog está com horário desconfigurado no Android Studio

Criei um EdiText com DatePickerDialog, fiz o teste em meu celular e funciona.

Porém o problema é que a data PT-BR mostrada no DatePickerDialog está totalmente desconfigurada (bem atrasada) e não recebe o valor correto do dia no EditText. Queria configurar corretamente para o dia atual.

  • As imagens a seguir detalham o erro.

inserir a descrição da imagem aqui

inserir a descrição da imagem aqui

        EditText editData_devolucao;

        // DatePickerDialog no editData_devolucao
        editData_devolucao = findViewById(R.id.editData_devolucao);
        Calendar calendar = Calendar.getInstance();
        dia = calendar.get(Calendar.DAY_OF_MONTH);
        mes = calendar.get(Calendar.MONTH);
        ano = calendar.get(Calendar.YEAR);

        editData_devolucao.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                DatePickerDialog datePickerDialog = new DatePickerDialog(
                        CadastrarEmprestimo.this, new DatePickerDialog.OnDateSetListener(){
                    @Override
                    public void onDateSet(DatePicker view, int dia, int mes, int ano){
                        mes += 1;
                        String data_dev = dia + "/" + mes + "/" + ano;
                        editData_devolucao.setText(data_dev);
                    }
                },dia,mes,ano);
                datePickerDialog.show();
            }
        });

java – Problema al agregar varios JTree en un JPanel que esta en un JSplitPane – Layout

Estoy teniendo un problema al agregar dos JTree en un panel, les explico, al presionar el JTree se marca en azul todo el ancho que ocupa, quería hacer que ocupe el máximo del JPanel en el que esta (como un GridLayout), este Panel se agrega a un JSplitPane para cambiar su tamaño, entonces probé hacer un truco que me había funcionado en otra GUI pero con botones:

Agregar un JPanel con BorderLayout, y luego a ese panel agregarle otro JPanel con un GridLayout(0, 1), esto funciona con lo que quiero hacer los botones ocupaban todo el ancho y la altura de estos no se divide entre todo el panel, por lo tanto todos estaban arriba (tambien funciona cuando uso el JSplitPane)

Pero al hacer esto con un JTree se ve que no funciona del todo bien, si bien esta lo que quiero hacer que el JTree, (que tenga el mismo ancho que el panel, incluso cuando uso el JSplitPane) al abrir y al volver a cerrar, hay un error que los deja separados

Entonces para terminar de explicar como quiero que se vea, es como cualquier IDE que tiene de estos JTree que colocan uno abajo del otro y ocupan todo el ancho del panel

Ejemplo de Eclipse:

introducir la descripción de la imagen aquí

Unas imágenes de lo que digo que pasa:

introducir la descripción de la imagen aquí

Bien pero…

introducir la descripción de la imagen aquí

Tengo que decir que he probado otros diferentes Layouts, por ejemplo he usado WrapLayout, lo cual fue mala idea, ya que no ocupa todo el espacio y si agrando el JSplitPane se re-colocan en horizontal.

He usado MigLayout y para cada uno de los JTree hice un “wrap” para que salte a la otra linea, pero aun así tengo el problema que no ocupan todo el espacio del panel y menos si agrando el JSplitPane.

También GridBagLayout lo cual creo que no ayudo de mucho la verdad, quedaba todo en el centro y había que agregar otro panel para que vaya a la parte superior de arriba, pero aun no quedaba del ancho cuando re-dimensionaba el panel con el JSplitPane.

Y la mas “acertada” hasta ahora fue usar dos JPanel como mencione anteriormente.

Me encantaría que si alguien ya ha trabajado con este tipo de cosas o si sabe como solucionar esto, me pudiera ayudar y muchas gracias.

Prosigo a mostrar el código listo para ejecutar de lo ultimo que intente:

import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.tree.DefaultMutableTreeNode;

public final class Main extends JFrame {

    private static final long serialVersionUID = 1L;

    public static void main(String() args) {
        loadLookAndFeel();
        new Main("JTree - Prueba");
    }

    private static void loadLookAndFeel() {
        try {
        
            UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
        
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public Main(final String title) {
        setTitle(title);
        setSize(1000, 600);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    
        JPanel left = Left();
    
        JPanel right = new JPanel();
    
        JSplitPane splitPane = new JSplitPane();
        splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
        splitPane.setDividerLocation(220);
    
        splitPane.setLeftComponent(left);
        splitPane.setRightComponent(right);
    
        add(splitPane);
    
        setVisible(true);
    }

    private JPanel Left() {
        JPanel left = new JPanel();
        left.setLayout(new BorderLayout());
    
        JPanel main_left = new JPanel();
        main_left.setLayout(new GridLayout(0, 1));
    
        main_left.add(Tree("Caja 1"));
        main_left.add(Tree("Caja 2"));
    
        left.add(main_left, BorderLayout.NORTH);
        return left;
    }

    private JTree Tree(final String name) {
        DefaultMutableTreeNode raiz = new DefaultMutableTreeNode(name);
    
        DefaultMutableTreeNode colores = new DefaultMutableTreeNode("Colores");
        DefaultMutableTreeNode rojo = new DefaultMutableTreeNode("Rojo");
        DefaultMutableTreeNode azul = new DefaultMutableTreeNode("Azul");
        DefaultMutableTreeNode amarillo = new DefaultMutableTreeNode("Amarillo");
        DefaultMutableTreeNode verde = new DefaultMutableTreeNode("Verde");
        DefaultMutableTreeNode rosa = new DefaultMutableTreeNode("Rosa");
        DefaultMutableTreeNode celeste = new DefaultMutableTreeNode("Celeste");
    
        colores.add(rojo);
        colores.add(azul);
        colores.add(amarillo);
        colores.add(verde);
        colores.add(rosa);
        colores.add(celeste);
    
        DefaultMutableTreeNode figuras = new DefaultMutableTreeNode("Figuras");
        DefaultMutableTreeNode ovalo = new DefaultMutableTreeNode("Óvalo");
        DefaultMutableTreeNode pentagono = new DefaultMutableTreeNode("Pentágono");
        DefaultMutableTreeNode triangulo = new DefaultMutableTreeNode("Triángulo");
        DefaultMutableTreeNode cuadrado = new DefaultMutableTreeNode("Cuadrado");
        DefaultMutableTreeNode circulo = new DefaultMutableTreeNode("Círculo");
    
        figuras.add(ovalo);
        figuras.add(pentagono);
        figuras.add(triangulo);
        figuras.add(cuadrado);
        figuras.add(circulo);
    
        DefaultMutableTreeNode herramientas = new DefaultMutableTreeNode("Herramientas");
        DefaultMutableTreeNode alicates = new DefaultMutableTreeNode("Alicates");
        DefaultMutableTreeNode calibre = new DefaultMutableTreeNode("Calibre");
        DefaultMutableTreeNode serrucho = new DefaultMutableTreeNode("Serrucho");
        DefaultMutableTreeNode llaveinglesa = new DefaultMutableTreeNode("Llave Inglesa");
        DefaultMutableTreeNode martillo = new DefaultMutableTreeNode("Martillo");
    
        herramientas.add(alicates);
        herramientas.add(calibre);
        herramientas.add(serrucho);
        herramientas.add(llaveinglesa);
        herramientas.add(martillo);
    
        raiz.add(colores);
        raiz.add(figuras);
        raiz.add(herramientas);
    
        JTree tree = new JTree(raiz);
        return tree;
    }

}

html – quiero poner el footer (color oscuro) detras de la card blanca pero esta no deja, ¿qué podria hacer?

.container-card{
    margin-bottom: 50px;
    width: 100%;
    height: 100px;
    position: relative;
}
.card-smile{
    text-align: center;
    margin: 50px 10px;
    position: absolute;
    top: -10px;
    padding: 15px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.card-smile > h3{
    font-size: 1.09em;
}



.btn-big{
    border: none;
    border-radius: 2em;
    background-color: rgba(254,85,194,255);
    color: #FFF;
    font-size: .6em;
    margin-bottom: 1.5em;
    padding: 1.2em 4em;
}


/* footer */

footer{
    background: #00252e;
    width: 100%;
    heigth:300px;
    z-index: -10;
}
<div class="conteiner2-card">
  <div class="container-card">
    <div class="card-smile">
      <h3>Ready To Build Your Community?</h3>
      <button class="btn btn-big btn-dffcolor">
        Get Started For Free
      </button>  
  </div>
</div>
</div>
<footer>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Assumenda fugit a necessitatibus perspiciatis ullam ex praesentium, quas id eum. Optio nostrum labore cum esse quasi quae odio non molestias magni? </p>
</footer>

javascript – JSON_ENCODE no esta funcionando

Estoy intentando obtener los valores de una consulta, la consulta como tal esta bien… ya que si intento retornar un indice del array, lo regresa perfectamente.. y en el success de mi peticion ajax lo reconoce perfectamente el problema es cuando trato de retornar todos los datos con json_encode…
A continuación mi codigo php

          function cargarDatos(){
            $baseDatos = new BD();
            if ($baseDatos->conBDPDO()) {
                
               
                $queryProductos = "select * from producto where estadoInmueble=1";
                $conn = $baseDatos->connBD->prepare($queryProductos);
                $conn ->execute();
                $arrayProductos =  $conn->fetchAll(PDO::FETCH_ASSOC);
                $cont=0;
                
                echo json_encode($arrayProductos);
                
            }else{
                echo 'No se ha podido establecer la conexión con la base de datos';
            }
        } 

Y Ahora mi petición Ajax

               $.ajax({
                url: "controladores/controlador_producto.php",
                data: data,
                cache: false,
                contentType: false,
                processData: false,
                type: 'POST',
                async: false,
                success: (response) => {
                    
                    try {
                        arrayPropiedades = JSON.parse(response)
                        console.log(arrayPropiedades)
                    } catch (error) {
                        console.log(error)
                    } 
                }
              });

en el success sale en blanco como si el array no tuviera nada y por consola tengo este error:

    SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Object.success (producto.js:160)
    at c (jquery-3.6.0.min.js:2)
    at Object.fireWith (as resolveWith) (jquery-3.6.0.min.js:2)
    at l (jquery-3.6.0.min.js:2)
    at XMLHttpRequest.<anonymous> (jquery-3.6.0.min.js:2)
    at Object.send (jquery-3.6.0.min.js:2)
    at Function.ajax (jquery-3.6.0.min.js:2)
    at producto.cargarDatos (producto.js:148)
    at HTMLDocument.<anonymous> (index.js:173)

html – No me suma la condición si está en true en javascript

No estás usando la operación booleana de comparación ‘==’.
Código de ejemplo:

        if(this.turbo == true){
            this.velocidad += 10;
        }else if(this.turbo == false){
            this.velocidad += 20;
        }

O también:

        if(this.turbo){
            this.velocidad += 10;
        }else {
            this.velocidad += 20;
        }

Incluso:

this.velocidad += this.turbo? 10 : 20;

Nota: ME parece raro que sume 20 si no hay turbo y 10 si sí.

php – ¿Cómo puedo extraer esta expresión con preg_match?

Tengo este texto extraído, y que ejecuto por comando para extraer los correos electronicos, el tema va en que me retorna el mensaje esta estructura:

Modelo:rn  
Maulern    

Unidad:rn  
28rn       

Fecha:rn   
26/05/2021r

Pero como el dato a extraer esta con saltos de linea no me permite ingresar a ese dato.

Normalmente los extraia asi:

preg_match('/Modelo:(.*)/',$correo,$model);

Pero si ocupo el que utilizo normalmente no me lo marca

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

Entonces como podría hacer que la expresion regular me tome los rn que me agrego al transformarlo a texto puro?

usa – I have a valid ESTA and I got refused a B1/B2 US Visa

Answer #1:
Your problem now is that even though you had (not have, had) an approved ESTA, you now would be required to answer Question 7 with a YES, instead of a NO.

  1. Have you ever been denied a U.S. visa you applied for with your current or previous passport, or have you ever been refused admission to the United States or withdrawn your application for admission at a U.S. port of entry?

Note that this question refers only to visas and not ESTA applications. Even if you have had a previous ESTA application denied, you should answer ‘no’ to this question provided you have not been denied a visa, been refused entry or withdrawn a visa application in the past.

If you have withdrawn a visa application, you will likely be considered suspicious due to the assumption that your withdrawal was likely out of fear of being denied.

As soon as your answer to any of the 7 qualification questions changes from No to Yes, your existing ESTA is considered void, and you have to reapply for a new ESTA. Because you applied for a B1/B2 visa and were denied, your answer to Question 7 is now YES.

It is not guaranteed that answering YES to question 7 will automatically deny you a new ESTA, but the probability is considered very likely.

Answer #2:
The US Customs and Border Protection is part of the US Department of Homeland Security and it (the CBP) runs the ESTA system. The US Department of State runs the Visa program. The Departments of State and Homeland Security have a memorandum of understanding to feed to and share information from IDENT, a single shared database. Therefore yes, if you were to attempt to enter an airport and pass through Customs to enter the US, the CBP Agents will know about your visa refusal. Guaranteed.