Los Teques, VENEZUELA
Buenas, tengo una pregunta ¿hay alguna libreria en laravel para realizar url de invitaciones?, o como pudiera programarla? tendria que crear un tokens para el usuario y guardar esa ruta de forma temporal y que el usuario pueda compartirla o crear una ruta para cada usuario de forma permanente? seria asi como lo estoy planteando?.
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');
}
```
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?
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>
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?
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');
@foreach($prueba as item) {{item->id}} {{item->producto}} {{item->precio}} {{item->cantidad}} @endforeach()
El que tenga la posibilidad de poder comunicarse por una red social por inbox seria fantastico
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?
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
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));
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 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