0
I’m trying to make a nested list via json, with the Aravel, example, the companies table, has several products each company, I want when I click on a particular company, appear the registered products only in that company that I clicked, but I’m not getting, someone has an idea?
My model:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class TransferenciaArquivo extends Model
{
protected $table='TransferenciaArquivos';
protected $fillable=[
'Empresa_id',
'Usuario_id',
'Assunto',
'Email',
'Produto_id',
'Arquivo',
'Comentario',
'StatusTransferenciaArquivos_id',
];
public function statusTransferenciaArquivos(){
return $this->hasOne('App\StatusTransferenciaArquivos','id','StatusTransferenciaArquivos_id');
}
public function empresasTransferenciaArquivos(){
return $this->hasOne('App\Empresa','id','Empresa_id');
}
public function usuariosTransferenciaArquivos(){
return $this->hasMany('App\UsuariosTreinamentos','id','Usuario_id');
}
public function produtoTransferenciaArquivos(){
return $this->belongsToMany('App\Produto','id','Produto_id');
}
}
I was returning the products like this:
<?php
$callback = isset($_GET['callback']) ? $_GET['callback'] : false;
$conecta = mysqli_connect("localhost","root","Mini221190","datamace");
if(isset($_GET['id'])) {
$catID = $_GET['id'];
} else {
$catID = 1;
}
$selecao = "SELECT p.id, p.Nome FROM Produtos p inner join empresas_produtos pe on p.id = pe.Produto_id WHERE Empresa_id = {$catID}";
$produtos = mysqli_query($conecta,$selecao);
$retorno = array();
while($linha = mysqli_fetch_object($produtos)) {
$retorno[] = $linha;
}
echo json_encode($retorno);
// fechar conecta
mysqli_close($conecta);
?>
and businesses thus:
<?php
$callback = isset($_GET['callback']) ? $_GET['callback'] : false;
$conecta = mysqli_connect("localhost","root","Mini221190","datamace");
$selecao = "SELECT id, RazaoSocial FROM Empresas";
$empresas = mysqli_query($conecta,$selecao);
$retorno = array();
while($linha = mysqli_fetch_object($empresas)) {
$retorno[] = $linha;
}
echo ($callback ? $callback . '(' : '') . json_encode($retorno) . ($callback? ')' : '');
// fechar conecta
mysqli_close($conecta);
?>
and created a query.js file and imported in the form along with the callback import. My file query.js:
function retornarEmpresas(data){
var empresas = "";
$.each(data, function(chave,valor){
empresas += '<option value="' + valor.id + '">' + valor.RazaoSocial + '</option>';
});
$('#empresas').html(empresas);
}
$('#empresas').change(function(e){
var empresaID = $(this).val();
$.ajax({
type:"GET",
data: "id=" + empresaID,
url:"http://localhost:8080/retornar_produtos.php",
async: false
}).done(function(data){
var produtos = "";
$.each($.parseJSON(data), function(chave, valor){
produtos += '<option value="' + valor.id + '">' + valor.Nome + '</option>';
});
$('#produtos').html(produtos);
});
});
Have you created the Eloquent Model classes? You have this code to provide?
– novic
I edited the question.
– Fábio M.
In Laravel just write
TransferenciaArquivo::with('produtoTransferenciaArquivos')->get()
will charge, but, your code is strange, because, is Laravel is not ?– novic
To consult the products and companies, I made in pure php, I do not know very well Aravel. I have to put this code q vc sent in the model ? and then call you where?
– Fábio M.
Fabio has to call in
Controller
!!!– novic