¿Cómo puedo llevar una base de datos junto con un programa?

Usualmente los compiladores de código contienen alguna función para exportar el programa que hayamos creado. En Netbeans por ejemplo, existen servicios que puedes usar como son las bases de datos y así mismo conectarlas directamente con tu proyecto, sin embargo no encuentro la forma de cómo podría crear un proyecto directamente con una base de datos interna que pueda llevar siempre junto con el programa sin tener que establecer una conexión con algún servidor.

Al utilizar mysql de xampp junto con Nginx ocurren errores

apenas empecé a probar nginx y sé lo básico. Y noté que podía utilizar el servidor Mysql de xampp y ahorrarme un buen tiempo, pero noté que al utilizarlo, configurarlo y etc, si apagas el mysql en xampp y intentas volverlo a iniciar muestra que el puerto 3306 está ocupado sin haber ningún programa que lo utilice.

¿Algunas recomendaciones de cómo configurar Mysql en nginx, o que no debí hacer? Gracias 🙂

Eliminar una migración por completo (junto con su clase) en Laravel. Eliminar tabla

Tengo un problema al crear nuevamente las tablas, me dice que la clase ya existe.

Mi problema desde el principio fue que cree las tablas en desorden, así como esta la lista.

  • Tabla Idiomas
  • Tabla Experiencias
  • Tabla Usuarios

Cuando las tenia que haber creado en este orden.

  • Tabla Usuarios
  • Tabla Idiomas
  • Tabla Experiencias

Esto porque las tablas de abajo (Idiomas y Experiencias) tienen llave foránea que depende de la tabla Usuarios.

Entonces decidí crearlas de nuevo, las elimine “manualmente” solo borre los archivos, y al intentar volver a ejecutar el comando

php artisan make:migration create_usuario_table

Me sale el error de que la clase ya existe.

InvalidArgumentException  : A CreateUsuariosTable class already exists.  protected function ensureMigrationDoesntAlreadyExist($  name)   {     if (class_exists($  className = $  this->getClassName($  name))) {     throw new InvalidArgumentException("A {$  className} class already exists.");     }   } 

estuve buscando en el foro y encontre que se puede usar

Schema::dropIfExists(‘usuarios’);

Schema::drop(‘idiomas’);

pero no me funciona, o lo estoy aplicando mal.

Espero me puedan ayudar con esto, gracias.

Enviar um result junto com objeto no Angular

Tenho um popup do sweetalert2 com um campo de input e preciso enviar esse result junto com o objeto para o backend. Não sei como fazer no Angular, sou novo no framework. Tenho a função que guarda o conteúdo do input no result:

showSwalConfirmText(callback) {         this.swal.question({             title: 'Você tem certeza?',             input: 'textarea',             inputPlaceholder: 'Digite o motivo...',             showCancelButton: true,             confirmButtonColor: '#3085d6',             cancelButtonColor: '#d33',             confirmButtonText: 'Sim',             cancelButtonText: 'Não',             confirmButtonClass: 'btn btn-success',             cancelButtonClass: 'btn btn-danger',             buttonsStyling: true,             })             .then((result) => {                 if (result) {                     callback(true);                 } else {                     callback(false);                 }             });     }

E no ngAfterViewInit o método que chama:

ngAfterViewInit(): void {   const controlBlurs: Observable < any > [] = this.formInputElements     .map((formControl: ElementRef) => Observable.fromEvent(formControl.nativeElement, 'blur'));    const self = this;    this.swal.showSwalConfirmText(function(isConfirmed) {     if (isConfirmed) {       self.removerTitulo();     } else {       self.cancelar();     }   }); }

E por fim o método removerTitulo que chama o serviço para chamar a API do backend:

removerTitulo() {      this.tituloService.RemoverTitulo(this.titulo)       .subscribe(       result => {         if(result['valid']){                this.swal.showSwalSuccess('Titulo, Removido com Sucesso');               if (this.titulo.naturezaId === 1) {                   this.router.navigate(['titulo/lista/receber']);               }                else if (this.titulo.naturezaId === 2) {                   this.router.navigate(['titulo/lista/pagar']);               }         }         else{            this.swal.showSwalErro(result['message']);            if(this.titulo.naturezaId === 1){             let url = location.hash.replace("#/", "").replace("excluir", "editar/receber");             this.router.navigate([url]);           }           else if(this.titulo.naturezaId === 2){             let url = location.hash.replace("#/", "").replace("excluir", "editar/pagar");             this.router.navigate([url]);           }                    }                },       error => {         // tslint:disable-next-line:no-shadowed-variable         error => this.errors;       });   }

O problema é que só está indo o objeto com o id do título. Preciso que vá também o result onde salvei o conteúdo do input.

Alguém pode me ajudar, estou há 2 dias com esse problema.

Erro ao usar o map() no ReacNative junto com o Firebase [pendente]

Eu sou novo no React-Native e no Firebase, e estou tendo dificuldades em trazer as informações do banco(Firebase) para o aplicativo através do React-Native. Eu quero buscar os nomes, os horários e as siglas, e imprimir tudo dentro de uma <View> em um <Text>, formando uma lista de conteúdos. Então ficaria assim:

<View> <Text> Alexandre... </Text> <Text> Segunda 19:30 ... </Text> <Text> EA215 ... </Text> </View>  <View> <Text> André... </Text> <Text> Segunda 17:00 ... </Text> <Text> EE014  </Text> </View> . . . 

Obs: Quando eu fazia o código desta forma:

let items = Object.keys(data); //let items2 = Object.values(data); this.setState({ items }); 

O código retornava para mim os nomes e eu conseguia imprimir os nomes. E quando eu usava o código desta forma:

//let items = Object.keys(data); let items2 = Object.values(data); this.setState({ items2 }); 

O código retornava para mim os horários e as siglas, aí iria depender do que eu colocava se era items2.Sigla_Prof ou items2.Horario_Prof

Mas quando eu uso dois items desta forma:

let items = Object.keys(data); let items2 = Object.values(data); this.setState({ items, items2 }); 

O código da erro dizendo que o this.props.items2.map não é um objeto. Por que isso acontece? E como eu posso consertar isso? Como posso fazer com que ele traga para mim os nomes, os horários e as siglas?

Firebase

inserir a descrição da imagem aqui

Código 1

inserir a descrição da imagem aqui

Código 2

inserir a descrição da imagem aqui

Erro

inserir a descrição da imagem aqui

Problema de submit no form junto com a API do PagSeuro

Bom, estou com um problema, na parte de progamação, com o jquery eu consegui fazer funcionar tudo(aparecer o cartão, numero de parcelas, hash.. etc) só q n estou conseguindo fazer submit no form, ele não me redireciona para a pagina que eu quero(que é a controller/controllerPedido.php) para poder fazer o checkout , o config.php está correto.

meu checkout.js e meu index.html:

var Root="http://" + document.location.hostname +"/pgseguro/"; var valor = 500.00;    // inicia a sessao com o hash gerado no controllerId.php via json function iniciarSessao() { 	$  .ajax({ 		url: Root+"controller/controllerId.php", 		type: 'POST', 		dataType: 'json', 		success: function(data) { 			PagSeguroDirectPayment.setSessionId(data.id); 		}, 		complete: function() { 			listaMeioPagamento(); 		} 	}); }   //lista o pagamento possiveis com o Pagseguro function listaMeioPagamento() { 	PagSeguroDirectPayment.getPaymentMethods({ 	amount: valor, 	success: function(data) {  		$  .each(data.paymentMethods.CREDIT_CARD.options, function(i, obj){ 			$  ('.cartaoCredito').append("<div><img src=https://stc.pagseguro.uol.com.br./"+obj.images.SMALL.path+">"+ obj.name+" </div>"); 		}) 	},  	complete: function(data) { 			getTokenCard(); 		} 	}); } /* Ao digitar o numero do cartao nos 6 primeiros digitos ele usa a função do pagseguro para verificar a bandeira do cartão */ $  ('#numCartao').on('keyup', function() { 	var NumeroCartao = $  (this).val(); // numero do cartao 	var qntCaracteres = NumeroCartao.length; // a qnt de caracters do cartao  	/* quando ver que o num de caracteres for 6 ele faz a verificação( 6 digitos é o minimo) 	para saber a bandeira. 	*/ 	if(qntCaracteres >= 6) { 	PagSeguroDirectPayment.getBrand({ 		cardBin: NumeroCartao, 		success: function(response) { 	  		var bandeiraImg = response.brand.name; // tras o nome da bandeira 	 		 $  ('.bandeiraCartao').html("<img src=https://stc.pagseguro.uol.com.br/public/img/payment-methods-flags/42x20/" + bandeiraImg + ".png>"); // é gerado um img com o nome da bandeira 	 		 getParcelas(bandeiraImg); 			},  			//caso dê erro é limpado a div do bandeira cartão(caso tenha algo dentro), e é mandado uma msg de erro para o usuario. 		error: function(response) { 			$  ('.bandeiraCartao').empty(); 			$  ('.msgError').html("<span>Cartão invalido!</span>") 		}, 	}); } });   // exibe a quantidade e valores das parcelas  function getParcelas(bandeira) { PagSeguroDirectPayment.getInstallments({         amount: valor, // traz o valor do pruduto         maxInstallmentNoInterest: 2, // o numero de parcelas q não será cobrado juros         brand: bandeira, // a bandeira vinda por parametro          success: function(response){         	/*o primeiro foreach lê o json enviado no parametro response que são varios arrays,          	 o segundo foreach($  .each) abaixo remove todos os valores dentro da tag <select> 			isso evita a duplicação nas parcelas, sempre que for mostrado as parcelas  			é retirado tudo que esta dentro.         	 */          $  .each(response.installments,function(i,obj){                 $  .each(obj,function(i2,obj2){                     var numberValue = obj2.installmentAmount;                     var num = "R$   "+ numberValue.toFixed(2).replace(".",",");                     var numParcelas = numberValue.toFixed(2);                     $  ('#qtdParcelas').show().append("<option value='" + obj2.quantity + "' title='" + numParcelas + "'>"+obj2.quantity+" parcelas de " + num + "</option>");                 });             });        	          }, // fim do succsess 	}); }  $  ("#qtdParcelas").on('change', function() { 	var valueSelected = document.getElementById('qtdParcelas'); 	$  ('#valorParcelas').val(valueSelected.options[valueSelected.selectedIndex].title); });  //pega o token do Cartão function getTokenCard() { 	PagSeguroDirectPayment.createCardToken({    cardNumber: '4111111111111111', // Número do cartão de crédito    brand: 'visa', // Bandeira do cartão    cvv: '123', // CVV do cartão    expirationMonth: '12', // Mês da expiração do cartão    expirationYear: '2030', // Ano da expiração do cartão, é necessário os 4 dígitos.    success: function(response) {         $  ('#tokenCard').val(response.card.token);    },  }); }  // Gera o hash do cartão $  ('#btnComprar').on('click', function(event) { 	event.preventDefault(); 	PagSeguroDirectPayment.onSenderHashReady(function(response){ 		$  ("#hashCard").val(response.senderHash); 	}); })  iniciarSessao();
<!DOCTYPE html> <html lang="pt-br"> <head> 	<meta charset="UTF-8"> 	<title>Document</title> 	<link rel="stylesheet" href="libraries/style.css"> </head> <body> 	  	<form name="form1" method="post" action="controller/controllerPedido.php"> 		<input type="text" id="numCartao" name="numCartao"> 		<input type="text" id="tokenCard"> 		<input type="text" id="hashCard" name="hashCard"> 		<div class="bandeiraCartao"></div> 		<div class="msgError"></div> 		<select name="qtdParcelas" id="qtdParcelas"> 			<option value="">Selecione</option> 		</select> 		<input type="text" id="valorParcelas" name="valorParcelas">  		<input type="submit" id="btnComprar" name="btnComprar"> 	</form>    	<div class="cartaoCredito"></div> 	<div class="boleto"></div> 	<div class="debito"></div> 	   	<script type="text/javascript" src= "https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js"></script> 	<script src="libraries/zepto.min.js"></script> 	<script src="libraries/checkout.js"></script> </body> </html>

<?php  include("../config/config.php")  $  tokenCard = $  _POST["tokenCard"]; $  hashCard = $  _POST["hashCard"]; $  qtdParcelas = filter_input(INPUT_POST,'qtdParcelas',FILTER_SANITIZE_SPECIAL_CHARS); $  valorParcelas = filter_input(INPUT_POST,'valorParcelas',FILTER_SANITIZE_SPECIAL_CHARS); $  data["email"] = EMAIL_PAGSEGURO; $  data["token"] = TOKEN_SANDBOX; $  data["currency"]="BRL"; $  data["paymentMode"] = "default"; $  data["paymentMethod"] = "creditCard"; $  data["receiverEmail"] = EMAIL_PAGSEGURO; $  data["notificationURL"] = "www.prjstorm.com/notificacao.php"; // aqui pode ser feito um loop caso exista mais de um item na compra // todos obrigatorios $  data["itemId1"]="1"; $  data["itemDescription1"]="Notebook Prata"; $  data["itemAmount1"]="500.00"; // valor do item $  data["itemQuantity1"]="1"; $  data["itemWeight1"]="1000"; ///////////////// $  data["reference"]="83783783737"; $  data["senderName"]="João da Silva"; // nome do comprador e os dados dele abaixo $  data["senderCPF"] = "11111111111"; $  data["senderAreaCode"]="37"; $  data["senderPhone"]="99999999"; $  data["senderEmail"]="c51994292615446022931@sandbox.pagseguro.com.br"; $  data["senderHash"] = $  hashCard; $  data["shippingAddressRequire"] = true; $  data["creditCardToken"] = $  tokenCard; $  data["installmentQuantity"] = $  qtdParcelas; $  data["installmentValue"] = $  qtdParcelas; $  data["noInterestInstallmentQuantity"] = 2; $  data["creditCardHolderName"]='Jose Comprador'; $  data["creditCardHolderCPF"]='22111944785'; $  data["creditCardHolderBirthDate"]='27/10/1987'; $  data["creditCardHolderAreaCode"]='37'; $  data["creditCardHolderPhone"]='99999999'; $  data["billingAddressStreet"]='Av. Brig. Faria Lima'; $  data["billingAddressNumber"]='1384'; $  data["billingAddressComplement"]='5 Andar'; $  data["billingAddressDistrict"]='Jardim Paulistano'; $  data["billingAddressPostalCode"]='01452002'; $  data["billingAddressCity"]='Sao Paulo'; $  data["billingAddressState"]='SP'; $  data["billingAddressCountry"]="BRA";   $  buildQuery=http_build_query($  data); $  url = "https://ws.sandbox.pagseguro.uol.com.br/v2/checkout";  $  curl = curl_init($  url); curl_setopt($  curl,CURLOPT_HTTPHEADER,Array("Content-Type: application/x-www-form-urlencoded; charset=UTF-8")); curl_setopt($  curl,CURLOPT_POST,true); curl_setopt($  curl,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($  curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($  curl,CURLOPT_POSTFIELDS,$  buildQuery); $  return = curl_exec($  curl); curl_close($  curl);  $  xml = simplexml_load_string($  return); echo $  xml->code;  

Como usar ckeditor junto com javascript

Estou Tentando ativar uma função dentro da area de texto do ckeditor como onclick, onload, onkeypress ou onkeyup, funciona perfeitamen`te em textareas “normais” mas quando implemento o ckeditor ele “bloqueia” isso

echo"<textarea   id='editor1'  name='descricao' class='form-control' rows='10' required >$  descricao</textarea>"; ?> 

CKEDITOR.replace( ‘editor1’ );

$ (document).ready(function(){ $ .fn.modal.Constructor.prototype._enforceFocus = function(){};

});