How do I make a nested list via json with laravel?

0

I'm trying to make a nested list via json, with laravel, example, the table companies, have several products each company, I want when I click on a particular company, appear the products registered only in that company that I clicked, but not I'm getting it, does anyone have 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 companies like this:

                <?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 I created a query.js file and imported it into the form along with the callback import. My query.js file:

  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);
              });
            });
    
asked by anonymous 26.02.2018 / 21:11

0 answers