Boa tarde, estava fazendo umas implementações nova no laravel 5.0 depois que fiz os cursos queria tirar uma dúvida.
Eu consegui fazer o buscar sem chave estrangeira, porém com a chave estrangeira ele da erro na tabela, vou postar o código.
Sem chave estrangeira
public function listaragencia(){
$agencia = Request::only('nome');
$agencia = $agencia['nome'];
$agencias = DB::table('agenciafomento')->where('nome', 'ilike', $agencia)->get();
return view ('administrador.agenciafomento')->with('agenciafomento', $agencias);
}
Código da pagina
@extends('layout.principal')
@section('conteudo')
<h3 style="text-align:center">Agências de Fomento</h3>
<hr>
<div>
<a href="/administrador/cadastraragencia" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> Cadastrar</a>
</div>
<h2 style="text-align:center;">Digite o nome da Agência de Fomento</h3>
<form class='col-md-12' method='post' action="/administrador/listaragencia">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<div class='input-group' style='width:340px;text-align:center;margin:0 auto;'>
<input type='text' class='form-control' name="nome" placeholder='Digite o nome'><br><br>
<button type="submit" class="btn btn-primary">Buscar</button><br><br>
<a href="/administrador/agenciafomento" class="btn btn-default">Listar todas as Agências</a><br><br>
</div>
</form>
<br><br><br>
<table class="table table-striped table-bordered table-hover">
<tr>
<th>ID</th>
<th>Nome</th>
<th>Editar</th>
<th>Excluir</th>
</tr>
@forelse($agenciafomento as $af)
<tr>
<td>{{ $af->id }}</td>
<td>{{ $af->nome }}</td>
<td>
<a href="/administrador/editaragencia/{{$af->id}}">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
<td>
<a href="#" class="glyphicon glyphicon-trash" data-toggle="modal" data-target="#{{$af->id}}"></a>
<div id="{{$af->id}}" class="modal fade" role="dialog">
<div class="site-wrapper">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Agência de fomento.</h4>
</div>
<div class="modal-body">
<p>Deseja excluir a agência de fomento: {{$af->nome}}</p>
</div>
<div class="modal-footer">
<a href="/administrador/deletaragencia/{{$af->id}}" class="btn btn-primary">Sim</a>
<a href="#" class="btn btn-default" data-dismiss="modal">Não</a>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
@empty<br><br><br><br>
<div class="alert alert-danger">
Você não tem nenhuma agência de fomento cadastrada ou não existe!.
</div>
@endforelse
</table>
@if(old('nome'))
<div class="alert alert-success">
<strong>Sucesso!</strong>
A agência de fomento, {{ old('nome') }} foi cadastrada.
</div>
@endif
@stop
Como pode ver eu fiz um form lá em cima para direcionar para outro controller. Sem a chave estrangeira ele funciona já com a chave estrangeira ela não funciona
Exemplo com chave estrangeira que é instituição
@extends('layout.principal')
@section('conteudo')
<h3 style="text-align:center">Usuários</h3>
<hr>
<div>
<a href="/administrador/cadastrarusuario" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> Cadastrar</a><br><br>
</div>
<h2 style="text-align:center;">Digite o nome do Usuário</h3>
<form class='col-md-12' method='post' action="/administrador/listarusuario">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<div class='input-group' style='width:340px;text-align:center;margin:0 auto;'>
<input type='text' class='form-control' name="nome" placeholder='Digite o nome'><br><br>
<button type="submit" class="btn btn-primary">Buscar</button><br><br>
<a href="/administrador/usuario" class="btn btn-default">Listar todos os Usuários</a><br><br>
</div>
</form>
<br><br><br>
<table class="table table-striped table-bordered table-hover">
<tr>
<th>ID</th>
<th>Nome</th>
<th>Email</th>
<th>Instituição</th>
<th>Acesso</th>
<th>Editar</th>
<th>Excluir</th>
</tr>
@forelse($user as $u)
<tr>
<td>{{ $u->id }}</td>
<td>{{ $u->name }}</td>
<td>{{ $u->email }}</td>
<td>{{ $u->instituicao->nome }}</td>
<td>{{ $u->acesso }}</td>
<td>
<a href="/administrador/editarusuario/{{$u->id}}">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
<td>
<a href="{{$u->id}}" class="glyphicon glyphicon-trash" data-toggle="modal" data-target="#{{$u->id}}"></a>
<div id="{{$u->id}}" class="modal fade" role="dialog">
<div class="site-wrapper">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Usuário.</h4>
</div>
<div class="modal-body">
<p>Deseja excluir o usuário: {{$u->name}}</p>
</div>
<div class="modal-footer">
<a href="/administrador/deletarusuario/{{$u->id}}" class="btn btn-primary">Sim</a>
<a href="/administrador/usuario" class="btn btn-default" data-dismiss="modal">Não</a>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
@empty<br><br><br><br>
<div class="alert alert-danger">
Você não tem nenhum usuário cadastrado ou não existe!.
</div>
@endforelse
</table>
@if(old('nome'))
<div class="alert alert-success">
<strong>Sucesso!</strong>
O usuário, {{ old('nome') }} foi cadastrado.
</div>
@endif
@stop
Código para gerar a tabela com nome que deseja buscar.
public function listarusuario(){
$usuario = Request::only('nome');
$usuario = $usuario['nome'];
$usuarios = DB::table('users')->where('name', 'ilike', $usuario)->get();
return view ('administrador.usuario')->with('user', $usuarios);
}
OBS: Minha dúvida se existe outras maneiras de fazer consultas ainda mais com chave estrangeira até porque eles já estão mapeados no model e tenho tabelas que trazem maneira correta as informações das tabelas, porém na hora de buscar um usuário específico a view não chega nem de retornar e não mostra nada.