Avatar
Isaac Santaella

@isaacsantaella75356

Buenas estoy tratando de hacer relaciones de muchos de muchos a uno y muchos a muchos pero me sale codigo error 150 les muestro las tablas y los modelos

tabla user:

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * [@return](https://ed.team/return) void
     */
    public function up(https://)
    {
        Schema::create(https://'users', function (Blueprint $table) {
            $table->id(https://);
            $table->string(https://'name');
            $table->string(https://'email')->unique(https://);
            $table->timestamp(https://'email_verified_at')->nullable(https://);
            $table->string(https://'password');
            $table->rememberToken(https://);
            $table->timestamps(https://);
            $table->integer(https://'id_rol')->unsigned(https://);
            $table->foreign(https://'id_rol')->references(https://'id')->on(https://'rols');
        });
    }
}

Tabla rols, producto y operaciones son los mismos campos pero con diferente nombre. asi que emito sus tablas oslo colocare una para visualizar las tabla

class CreateRolsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * [@return](https://ed.team/return) void
     */
    public function up(https://)
    {
        Schema::create(https://'rols', function (Blueprint $table) {
            $table->id(https://);
            $table->string(https://'name');
            $table->timestamps(https://);
        });
    }
}

Estas es la tabla intermedia donde referencio las tres tablas rol, operaciones y productos

class OperacionesProductoRol extends Migration
{
   /**
    * Run the migrations.
    *
    * [@return](https://ed.team/return) void
    */
   public function up(https://)
   {
       //
       Schema::create(https://'OperacionesProductoRol', function (Blueprint $table){
           $table->id(https://);
           $table->integer(https://'id_rol')->unsigned(https://)->nullable(https://);
           $table->integer(https://'id_operaciones')->unsigned(https://)->nullable(https://);
           $table->integer(https://'id_productos')->unsigned(https://)->nullable(https://);
           $table->foreign(https://'id_rol')->references(https://'id')->on(https://'rols');
           $table->foreign(https://'id_operaciones')->references(https://'id')->on(https://'operaciones');
           $table->foreign(https://'id_productos')->references(https://'id')->on(https://'productos');
       });
   }
}

Modelo user

public function rol(https://){
        return $this->hasOne(https://'App\Rol');
    }
```

Rol :

```php
 public function user(https://){
        return $this->belongsToMany(https://'App\User');
    }
    public function producto(https://){
        return $this->belongsToMany(https://'App\Producto');
    }

    public function operaciones(https://){
        return $this->belongsToMany(https://'App\Operaciones');
    }
```
Producto
```php
public function rol(https://){
        return $this->belongsToMany(https://'App\Roll');
    }

    public function operaciones(https://){
        return $this->belongsToMany(https://'App\Operaciones');
    }
```
Modelo de operaciones
```php
public function producto(https://){
        return $this->belongsToMany(https://'App\Producto');
    }

    public function rol(https://){
        return $this->belongsToMany(https://'App\Rol');
    }
```
Avatar
Isaac Santaella

@isaacsantaella75356

Buenas, Las base de datos nos sirve para almacenar grandes cantidades de información de la entidad que deseemos, he estado investigando sobre la Web SQL, y veo que es una base de datos común y corriente pero su limitación es la capacidad de almacenamiento.

Mi pregunta es, ¿que utilidad tiene el Web SQL ? igual al IndexedDB? para que sirve? y cuando usar el localstorage y sessionstorage? que tan recomendado es usuarlo?

Avatar
Isaac Santaella

@isaacsantaella75356

Los datos enviados por ajax me da como resultado un array vacio [], cuando quito el codigo del ajax y lo envio por laravel, laravel agarra los valores de los input, quiero pasar los datos para el controlador pero esto me los devuelve vacio, paso los valores por la consola a ver si me lo envia vacios y no, muestro codigo y screenshoot

var names = document.querySelector('#name');
var phones = document.querySelector('#phone')
let save = document.querySelector('#save');
let getUrl = document.forms.createContact;
let urls = getUrl.getAttribute('action')


const saveDate = ( url, var1, var2) => {
   let xhttp = new XMLHttpRequest;
   let token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
   let data = {
       _token: token,
       name: var1.value,
       phone: var2.value
   }
   
   xhttp.onreadystatechange = () =>{
       if(this.readyState == 4 && this.status == 200){
               console.log(data, var1, var2, this.responseText)
       }
   }
   xhttp.open('post', url, true);
   xhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
   xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
   //xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   xhttp.setRequestHeader('X-CSRF-TOKEN', token);
   xhttp.send(data);
   console.log(data)
}

save.addEventListener('click', (e)=>{
   e.preventDefault();
   saveDate(urls, names, phones);
   
});

Route

Route::resource('contactos', 'Contacts');

Route::post('/contactos', 'Contacts@insertDate')->name('contacts.insertDate');

Controller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Contact;

class Contacts extends Controller
{
   public function __construct(){

       //$this->middleware('auth');

   }
   /**
    * Display a listing of the resource.
    *
    * [@return](https://ed.team/return) \Illuminate\Http\Response
    */

   public function index()
   {
       //
       $ejemplo = 'Prueba';
       $hola = 'pepito es pepa';
       return view('save', compact('ejemplo', 'hola'));
   }

   public function insertDate(Request $request)
   {
        // $contactos = new Contact;
        // $contactos->name = $request->name;
         //$contactos->phone = $request->phone;

		
   	return dd($request->all());
       
   }

   /**
    * Show the form for creating a new resource.
    *
    * [@return](https://ed.team/return) \Illuminate\Http\Response
    */
   public function create()
   {
       //
   }

   /**
    * Store a newly created resource in storage.
    *
    * [@param](https://ed.team/param)  \Illuminate\Http\Request  $request
    * [@return](https://ed.team/return) \Illuminate\Http\Response
    */
   public function store(Request $request)
   {
       //
   }

   /**
    * Display the specified resource.
    *
    * [@param](https://ed.team/param)  int  $id
    * [@return](https://ed.team/return) \Illuminate\Http\Response
    */
   public function show($id)
   {
       //
   }

   /**
    * Show the form for editing the specified resource.
    *
    * [@param](https://ed.team/param)  int  $id
    * [@return](https://ed.team/return) \Illuminate\Http\Response
    */
   public function edit($id)
   {
       //
   }

   /**
    * Update the specified resource in storage.
    *
    * [@param](https://ed.team/param)  \Illuminate\Http\Request  $request
    * [@param](https://ed.team/param)  int  $id
    * [@return](https://ed.team/return) \Illuminate\Http\Response
    */
   public function update(Request $request, $id)
   {
       //
   }

   /**
    * Remove the specified resource from storage.
    *
    * [@param](https://ed.team/param)  int  $id
    * [@return](https://ed.team/return) \Illuminate\Http\Response
    */
   public function destroy($id)
   {
       //
   }
}

view blade

<div class="container-form">
   <form action="{{ route('contacts.insertDate')}}" method="post" name="createContact">
       [@csrf](https://ed.team/csrf)
           <input type="text" name="nombre" id="name" class="form-control-sm inputs" placeholder="Persona">
           <input type="text" name="phone" id="phone" class="form-control-sm inputs" placeholder="Celular">
           <button id="save" class="btn btn-primary btn-sm">Guardar</button>
    </form>
   </div>
Avatar
Isaac Santaella

@isaacsantaella75356

Si bien estas dos herramientas son muy demandadas, mi pregunta es , ¿que herramienta o que framework es mejor?, desde el punto de vista:

-Conectarse con otros frameworks (Frontend) -Curva de Aprendizaje -Entrada y Salida de Datos -¿Recomendacion?

Avatar
Isaac Santaella

@isaacsantaella75356

Tengo un error, cuando voy hacer un foreach en laravel con el blade , quito el foreach y me muestra la vista aparte puedo registrar los datos, pero quiero mostrar los datos en la misma vista pero me sale error en view

php namespace App\Http\Controllers;

use Illuminate\Http\Request; use App;

class indexMate extends Controller { public function registrar(){ $prueba = App\Matematica::all(); return view('registrar',compact('prueba')); }

public function insertDate(Request $request){
    $matematica = new App\Matematica;
    $matematica->producto = $request->producto;
    $matematica->precio = $request->precio;
    $matematica->cantidad = $request->cantidad;
    $matematica->save();
    return back();
}

}

Route::get('registrar', 'indexMate@registrar');

($prueba as item)

            <tr>
              <th scope="col">{{item->id}}</th>
              <th scope="col">{{item->producto}}</th>
              <th scope="col">{{item->precio}}</th>
              <th scope="col">{{item->cantidad}}</th>
            </tr>
            [@endforeach](https://ed.team/endforeach)() 

El que tenga la posibilidad de poder comunicarse por una red social por inbox seria fantastico

Avatar
Isaac Santaella

@isaacsantaella75356

Buenas, estoy trabajando en un mini proyecto personal y tengo un problema; cuando recargo la pagina en mi localhost, me sale bienvenido o datos registrado no cuando entro por primera vez claro esta, y quisiera saber si se puede romper el flujo de el script que tengo para que no pase eso porque solamente aparece eso cuando le doy click al boton de iniciar sesion o registrar.

Y tambien quisiera saber si hay posibilidad colocar el php debajo del form justamente el div sin romper el efecto que le he aplicado, cada vez que coloco php debajo del form en el div me aplica el efecto pero si le coloco otro php en otro div donde tengo el iniciar sesión no me aplica el efecto ya que tiene dos require. Por eso lo coloque debajo de todo

<!DOCTYPE html>
        <html lang="es">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <link rel="stylesheet" href="css/style.css">
            <title>Shop List</title>
        </head>
        <body>
            <section>
                <div class="loguin" id="loguin">
                    <h3>Loguin</h3>
                    <form action="index.php" method="POST" onsubmit="">
                    <input type="email" placeholder="Email" name="correo">
                    <input type="password" placeholder="Password" name="clave">
                    <input type="submit" value="Sign In" id="btn1" name="boton">
                    <span>
                        <br>
                        <p>Dont have account?  <a id="sign" href="#">Sign Up</a></p>
                    </span>
                    </form>
                    
                </div>
                <div class="registro" id="registro">
                    <h3>Register</h3>
                    <form action="index.php" method="POST" onsubmit="">
                        <input type="name" placeholder="Name" name="nombre">
                        <input type="email" placeholder="Email" name="email">
                        <input type="password" placeholder="Password" name="clave">
                        <input type="password" placeholder="Confirm Password" name="clave2">
                        <input type="submit" value="Create Account" name="boton" id="btn2">
                        <span>
                            <br>
                            <p>Log in your account! <a id="sign2"href="#">Sign In</a></p>
                        </span>
                    </form>
                    
                </div>
                
            </section>
            <script src="js/eventos.js"></script>
        </body>
        </html>
<?php
   require ('php/connection.php');
             //Variables del formulario iniciar
             $correoUser = $_POST['correo'];
             $passUser = $_POST['clave'];
             $enviar2 = $_POST['boton'];
   
             if(isset($enviar2)){
               $conexion = new connection();
               $conexion->startSession($correoUser, $passUser);
           }
 
   
                      // Variables del formulario Registrar
                      $nomUser = $_POST['nombre'];
                      $correoUser2 = $_POST['email'];
                      $passUser1 = $_POST['clave'];
                      $passUser2 = $_POST['clave2'];
                      $enviar = $_POST['boton'];
                      // 
                      if(isset($enviar)){
                              echo "<script>alert('Datos Registrado')</script>";
                              $conexion = new connection();
                              $conexion->insertarDatos($nomUser, $correoUser2, $passUser1);
                       }
                      
      ?>

Me registra y me compara los datos claro esta, pero no se donde colocar el php para validar los formularios y que me aplique el efecto. Si aplico el php en cada uno, debajo de los formulario es decir:

 <form>
   </form>
   <?php 
   require('connection.php');
   ?>
   <form>
   </form>
   <?php 
   require('connection.php');
   ?>

Supondremos que esté asi, no me aplica dicho efecto, y creo que esta mal enlazar dos veces el require pienso yo qque es una mala practica. Que puedo hacer?

Avatar
Isaac Santaella

@isaacsantaella75356

Buenas, estoy trabajando en un mini proyecto personal y tengo un problema; cuando recargo la pagina en mi localhost, me sale bienvenido o datos registrado no cuando entro por primera vez claro esta, y quisiera saber si se puede romper el flujo de el script que tengo para que no pase eso porque solamente aparece eso cuando le doy click al boton de iniciar sesion o registrar.

Y tambien quisiera saber si hay posibilidad colocar el php debajo del form justamente el div sin romper el efecto que le he aplicado, cada vez que coloco php debajo del form en el div me aplica el efecto pero si le coloco otro php en otro div donde tengo el iniciar sesión no me aplica el efecto ya que tiene dos require. Por eso lo coloque debajo de todo el html.

:::html
     <!DOCTYPE html>
        <html lang="es">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <link rel="stylesheet" href="css/style.css">
            <title>Shop List</title>
        </head>
        <body>
            <section>
                <div class="loguin" id="loguin">
                    <h3>Loguin</h3>
                    <form action="index.php" method="POST" onsubmit="">
                    <input type="email" placeholder="Email" name="correo">
                    <input type="password" placeholder="Password" name="clave">
                    <input type="submit" value="Sign In" id="btn1" name="boton">
                    <span>
                        <br>
                        <p>Dont have account?  <a id="sign" href="#">Sign Up</a></p>
                    </span>
                    </form>
                    
                </div>
                <div class="registro" id="registro">
                    <h3>Register</h3>
                    <form action="index.php" method="POST" onsubmit="">
                        <input type="name" placeholder="Name" name="nombre">
                        <input type="email" placeholder="Email" name="email">
                        <input type="password" placeholder="Password" name="clave">
                        <input type="password" placeholder="Confirm Password" name="clave2">
                        <input type="submit" value="Create Account" name="boton" id="btn2">
                        <span>
                            <br>
                            <p>Log in your account! <a id="sign2"href="#">Sign In</a></p>
                        </span>
                    </form>
                    
                </div>
                
            </section>
            <script src="js/eventos.js"></script>
        </body>
        </html>
:::php
   <?php
   require ('php/connection.php');
             //Variables del formulario iniciar
             $correoUser = $_POST['correo'];
             $passUser = $_POST['clave'];
             $enviar2 = $_POST['boton'];
   
             if(isset($enviar2)){
               $conexion = new connection();
               $conexion->startSession($correoUser, $passUser);
           }
 
   
                      // Variables del formulario Registrar
                      $nomUser = $_POST['nombre'];
                      $correoUser2 = $_POST['email'];
                      $passUser1 = $_POST['clave'];
                      $passUser2 = $_POST['clave2'];
                      $enviar = $_POST['boton'];
                      // 
                      if(isset($enviar)){
                              echo "<script>alert('Datos Registrado')</script>";
                              $conexion = new connection();
                              $conexion->insertarDatos($nomUser, $correoUser2, $passUser1);
                       }
                      
      ?>

Me registra y me compara los datos claro esta, pero no se donde colocar el php para validar los formularios y que me aplique el efecto. Si aplico el php en cada uno, debajo de los formulario es decir:

   <form>
   </form>
   <?php 
   require('connection.php');
   ?>
   <form>
   </form>
   <?php 
   require('connection.php');
   ?>

Supondremos que esté asi, no me aplica dicho efecto, y creo que esta mal enlazar dos veces el require pienso yo qque es una mala practica. Que puedo hacer? language

Avatar
Isaac Santaella

@isaacsantaella75356

Ya solucione el error que tenia y minimicé el código, ahora cuando quiero aplicar dicho efecto, no me lo aplica, en la consola no me muestra error, pero si hago el evento listener a la dicha variable que verán a continuacion, me lo aplica automaticamente, porque puede ser?

class Design{
    transitionUp(up, down){
       this.up = up;
       this.down = down;
       this.up.style.transform = "translateY(-1000%)";
       this.down.style.transform = "translateY(0%)";
    }
    transitionDown(up,down){
        this.up = up;
        this.down = down;
        this.up.style.transform = "translateY(0%)";
        this.down.style.transform ="translateY(-1000%)";
        this.down.style.transition="all 3s";
        this.up.style.transition="all 1.3s"; 
    }
}

let diseño = new Design();
let enlance = document.getElementById('sign');
let enlance2 = document.getElementById('sign2');
let loguin = document.getElementById('loguin');
let registro = document.getElementById('registro');
enlance.addEventListener('click', diseño.transitionUp(loguin,registro));
enlance2.addEventListener('click', diseño.transitionDown(loguin,registro));
Avatar
Isaac Santaella

@isaacsantaella75356

Hola estoy aprendiendo, ecmaScript 6 con Class, y estoy tratando crear una clase con métodos aplicándoles parámetros para luego, llamarlos y colocar las variables para aplicar dicho efecto, pero en la consola me sale ese error, y no se porque. (Sorry por repetir el post, pense que el comando <code> lo tenia sorry)

class Design{
    transition(clickea, up, down){
        this.clickea = clickea;
        this.up = up;
        this.down = down;
        let cont = 0;
        let focus = document.getElementById(clickea);
        let content = document.getElementById(up);
        let content2 = document.getElementById(down);
        focus.addEventListener('click', function(clickea,up,down){
            if(cont == 0){
                content.style.transform = "translateY(-1000%)";
                content2.style.transform = "translateY(0%)";
                cont++;
            }else{
                content.style.transform = "translateY(0%)";
                content2.style.transform = "translateY(-100%)";
                cont--;
            }
        });
    }
}

const diseño = new Design();
let enlance = document.getElementById('sign');
let loguin = document.getElementById('loguin');
let registro = document.getElementById('registro');
diseño.transition(enlance, loguin, registro);
Uncaught TypeError: Cannot read property 'addEventListener' of null
   at Design.transition (eventos.js:30)
   at eventos.js:48
Avatar
Isaac Santaella

@isaacsantaella75356

Hola estoy aprendiendo, ecmaScript 6 con Class, y estoy tratando crear una clase con métodos aplicándoles parámetros para luego, llamarlos y colocar las variables para aplicar dicho efecto, pero en la consola me sale ese error, y no se porque.

<code> ```language lang-js ``` class Design{ transition(clickea, up, down){ this.clickea = clickea; this.up = up; this.down = down; let cont = 0; let focus = document.getElementById(clickea); let content = document.getElementById(up); let content2 = document.getElementById(down); focus.addEventListener('click', function(clickea,up,down){ if(cont == 0){ content.style.transform = "translateY(-1000%)"; content2.style.transform = "translateY(0%)"; cont++; }else{ content.style.transform = "translateY(0%)"; content2.style.transform = "translateY(-100%)"; cont--; } }); } }

const diseño = new Design(); let enlance = document.getElementById('sign'); let loguin = document.getElementById('loguin'); let registro = document.getElementById('registro'); diseño.transition(enlance, loguin, registro);

</code><code> Uncaught TypeError: Cannot read property 'addEventListener' of null at Design.transition (eventos.js:30) at eventos.js:48 </code>

Este usuario no ha indicado que le gusta algún video

Amigos

Isaac aún no tiene un enlace de referidos

Si eres estudiante premium ya tienes el enlace en tu perfil de usuario. Si aún no eres premium recibirás tu enlace de referidos como recompensa cada vez que completes un curso gratuito.

Más información

Estos son los beneficios que tú y Isaac recibirán si compras con su enlace de referidos 🙌

BeneficiosMensualSemestralAnual
Descuento ()$ 3 USD$ 15 USD$ 120 USD
Semanas gratis (Isaac)1612

Al comprar con el enlace de referidos aceptas los términos y condiciones

Publicaciones
Certificados
Me gusta
Referidos