hc3floyd 0 Denunciar post Postado Março 14, 2016 iae galera , vamos há mais uma dúvida , rs é o seguinte eu tenho uma entidade Cliente que tem uma FK de Endereço ( endereco_id ) como atributo , então segue o método que busca cliente : ClienteController public function show($id) { $cliente = Cliente::find($id); if(empty($cliente)) { return "cliente não existe"; } return view('cliente.detalhes')->with('cliente',$cliente); } esse é o script que estou usando para capturar esse cliente e popular alguns campos input. $(document).ready(function(){ $('.buscar').on('click',function(){ var id = $(this).attr('id'); var obj = $(this).data('id'); console.log('o id é: '+id); console.log(obj[0]); // acessa o primeiro objeto do array //popula os inputs }); }); é da aqui que vem o $(this).data('id'). @foreach ($clientes as $key=>$cli) <tr> <td> {{ $cli->id }} </td> <td> {{ $cli->nome }} </td> <td> {{ $cli->idade }} </td> <td> {{ $cli->cpf }} </td> <td> {{ $cli->telefone }} </td> <td> {{ $cli->email }} </td> <td align="center"> <a class="buscar" id="{{ $key }}" data-toggle="modal" data-id="{{ $clientes }}"> <span class="glyphicon glyphicon-eye-open"></span> </a> </td> @endforeach </table> eu to querendo enviar essas informações para um modal que sera populado pelo script só que não sei como acessar os propriedades do endereço já que o que está sendo retornado é o endereco_id , vou postar logo abaixo o retorno da variável obj. obj = $(this).data('id'); Object {id: 5, nome: "Eliel Virgens Santos", idade: "24", cpf: "010101010", email: "java.progress@bol.com.br"…} cpf:"010101010" created_at:"2016-03-13 13:20:07" email:"java.progress@bol.com.br" endereco_id:"5" // AQUI É ONDE MORA O PROBLEMA id:5 idade:"24" nome:"Eliel Virgens Santos" telefone:"7491416568" updated_at:"2016-03-13 13:20:07" veja que antes eu estava acessando o endereco assim $cliente->endereco->campo como devo fazer agora? Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 14, 2016 Não consegui compreender sua dúvida. Seu problema é no jquery ou php ? Compartilhar este post Link para o post Compartilhar em outros sites
hc3floyd 0 Denunciar post Postado Março 14, 2016 é justamente na conversa de um com o outro , vou tentar explicar no php eu uso o -> para acessa as propriedades de endereço que estão no cliente tipo cliente->endereco->rua com isso ai eu consigo mostrar a rua que o cliente x está cadastrado em outras eu acesso o chave de endereço no cliente e mostro a rua. var obj = $(this).data('id'); quando eu faço isso ai obj vem com os dados do cliente mas não sei como acessar o endereço porque só vem a chave eu quero saber como eu faço para acessar a rua do endereço já que não vou usar o php com o -> para acessar por exemplo se eu colocar console.log(obj[0].nome); ele vai mostrar o nome do cliente mas se eu fizer console.log(obj[0].endereco.rua); não é um comando válido Compartilhar este post Link para o post Compartilhar em outros sites
macielcr7 9 Denunciar post Postado Março 14, 2016 $cliente = Cliente::find($id)->join('endereco', 'cliente.endereco_id', 'endereco.id')->selectRaw('*'); <a class="buscar" id="{{ $key }}" data-toggle="modal" data-id="{{ $cli }}"> Compartilhar este post Link para o post Compartilhar em outros sites
hc3floyd 0 Denunciar post Postado Março 14, 2016 $cliente = Cliente::find($id)->join('endereco', 'cliente.endereco_id', 'endereco.id')->selectRaw('*'); <a class="buscar" id="{{ $key }}" data-toggle="modal" data-id="{{ $cli }}"> e como eu acesso essa propriedade no jQuery? <script type="text/javascript"> $(document).ready(function(){ $('.buscar').on('click',function(){ var id = $(this).attr('id'); var obj = $(this).data('id'); console.log('o id é: '+id); console.log(obj[0].endereco.rua);// da erro }); }); Compartilhar este post Link para o post Compartilhar em outros sites
hc3floyd 0 Denunciar post Postado Março 16, 2016 iae galera , depois de um dia procurando encontrei sem querer vendo uma aula sobre angular js como resolver meu problema no método de listar do meu controller adicionei o with('tabela do relacionamento').get(); assim : public function lista() { $clientes = Cliente::with('endereco')->get(); return view('cliente.listagem')->with('clientes',$clientes); } com isso ai o meu objeto já teve acesso ao endereco que estava linkado pelo id ( fk ) ai deu pra acessar pelo . fico assim meu jquery $(document).ready(function(){ $('.editar').on('click',function(){ var id = $(this).attr('id'); var objJson = $(this).data('id'); var idUpdate = $(this).attr('value'); $('#cliNomeEdit').val(objJson[id].nome); $('#cliIdadeEdit').val(objJson[id].idade); $('#cliCpfEdit').val(objJson[id].cpf); $('#cliEmailEdit').val(objJson[id].email); $('#cliTelefoneEdit').val(objJson[id].telefone); $('#cliRuaEdit').val(objJson[id].endereco.rua); $('#cliBairroEdit').val(objJson[id].endereco.bairro); $('#cliCepEdit').val(objJson[id].endereco.cep); $('#cliCidadeEdit').val(objJson[id].endereco.cidade); $('#cliEstadoEdit').val(objJson[id].endereco.uf); $('#divAlterar').modal('show'); $('#formUpdate').attr('action','/clientes/atualizar/'+idUpdate); }); }); espero que ajude alguém! Compartilhar este post Link para o post Compartilhar em outros sites