Stack Overflow em Português Asked by RamonVicente on September 13, 2020
Olá, tentei usar o Datatables server-side e não server-side mas ele não exibe o datatables. Faço tudo de acordo com a documetação (https://datatables.net/) e em tutoriais na internet, mas não funciona e também não exibe nenhum erro (as páginas carregam normalmente).
Meu Controlador:
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHttpRequests;
use AppHttpRequestsValidarFuncRequest;
use Redirect;
use Datatables;
use AppFuncionario;
use AppDependente;
class FuncionariosController extends Controller
{
public function index(){
$funcionarios = Funcionario::all();
return view('funcionarios.lista', ['funcionarios' => $funcionarios]);
}
public function novoForm(){
return view('funcionarios.formFuncionario');
}
public function salvarFuncionario(ValidarFuncRequest $request){
$funcionario = new Funcionario();
$funcionario->create($request->all());
Session::flash('msg_sucesso', 'Funcionário cadastrado!');
return Redirect::to('funcionarios/novoForm');
}
public function editar($id){
$funcionario = Funcionario::findOrFail($id);
return view('funcionarios.formFuncionario', ['funcionario' => $funcionario]);
}
public function atualizar($id, ValidarFuncRequest $request){
$funcionario = Funcionario::findOrFail($id);
$funcionario -> update($request->all());
Session::flash('msg_sucesso', 'Funcionário atualizado!');
return Redirect::to('funcionarios/'.$funcionario->id.'/editar');
}
public function listarDpt($id){
$funcionario = Funcionario::find($id);
return view('funcionarios.listaDpt', ['funcionario' => $funcionario]);
}
public function deletar($id){
try{
$funcionario = Funcionario::findOrFail($id);
$funcionario -> delete();
Session::flash('msg_sucesso', 'Funcionário deletado com sucesso!');
} catch(IlluminateDatabaseQueryException $e){
var_dump($e->errorInfo);
Session::flash('msg_erro', 'Funcionários com dependente(s) não podem ser deletado!');
}
return Redirect::to('funcionarios');
}
public function novoDpt($id){
$funcionario = Funcionario::findOrFail($id);
return view('funcionarios.novoDept', ['funcionario'=>$funcionario]);
}
}
Minha view:
@extends('layouts.app')
@section('content')
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="//cdn.datatables.net/1.10.12/css/jquery.dataTables.css">
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">
Funcionários
<a class="pull-right" href="{{url('funcionarios/novoForm')}}">Adicionar Funcionário</a>
</div>
<div class="panel-body">
@if(Session::has("msg_sucesso"))
<div class="alert alert-success"> {{ Session::get('msg_sucesso')}} </div>
@elseif(Session::has('msg_erro'))
<div class="alert alert-danger"> {{Session::get('msg_erro')}} </div>
@endif
<table class="table table-bordered" id="meusFuncionarios">
<thead>
<tr>
<th>ID</th>
<th>Nome</th>
<th>Sexo</th>
<th>Ações</th>
</tr>
</thead>
<tbody>
@foreach($funcionarios as $funcionario)
<tr>
<td>{{$funcionario -> id}}</td>
<td>{{$funcionario -> nome}}</td>
<td>{{$funcionario -> sexo}}</td>
<td>
<a href="funcionarios/{{$funcionario -> id}}/editar" class="btn btn-default">Editar</a>
<script>
function ConfirmarDelete(){
var confirma = confirm("Deseja mesmo exluir {{$funcionario -> nome}}");
if(confirma){
return true;
} else{
return false;
}
}
</script>
{!! Form::open(['method' => 'DELETE', 'url' => 'funcionarios/'.$funcionario->id, 'style' => 'display: inline;', 'onsubmit' => 'return ConfirmarDelete()']) !!}
<button class="btn btn-default">Excluir</button>
{!! Form::close() !!}
<a href="funcionarios/{{$funcionario->id}}/listarDpt" class="btn btn-default">Dependente(s)</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script src="//cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#meusFuncionarios').DataTable();
});
</script>
@endsection
Minha rout:
<?php
Route::get('/', function () {
return view('welcome');
});
Route::auth();
Route::get('home', 'HomeController@index');
Route::get('funcionarios', 'FuncionariosController@index');
Route::get('funcionarios/novoForm', 'FuncionariosController@novoForm');
Route::get('funcionarios/{funcionario}/editar', 'FuncionariosController@editar');
Route::post('funcionarios/salvarFuncionario', 'FuncionariosController@salvarFuncionario');
Route::patch('funcionarios/{funcionario}', 'FuncionariosController@atualizar');
Route::delete('funcionarios/{funcionario}', 'FuncionariosController@deletar');
Route::get('dependentes', 'DependentesController@index');
Route::get('dependentes/formDpt', 'DependentesController@novoForm');
Route::post('dependentes/salvarDpt', 'DependentesController@salvar');
Route::delete('dependentes/{dependente}', 'DependentesController@deletar');
Route::get('dependentes/{dependente}/editarDpt', 'DependentesController@editar');
Route::patch('dependentes/{dependente}', 'DependentesController@atualizar');
Route::get('funcionarios/{funcionario}/listarDpt', 'FuncionariosController@listarDpt');
Route::get('funcionarios/{funcionario}/novoDept', 'FuncionariosController@novoDpt');
Route::get('dependentes/{funcionario}/novoForm', 'DependentesController@novoForm');
Route::get('projetos', 'ProjetosController@index');
Route::get('projetos/novoForm', 'ProjetosController@novoForm');
Route::post('projetos/salvarProjeto', 'ProjetosController@salvarProjeto');
Route::get('projetos/{projeto}/editarProjeto', 'ProjetosController@editarProjeto');
Route::patch('projetos/{projeto}', 'ProjetosController@atualizarProjeto');
Route::delete('projetos/{projeto}', 'ProjetosController@deletarProjeto');
Route::get('projetos/{projeto}/listaFunc', 'ProjetosController@listaFunc');
Route::get('projetos/{funcionario}/addFunc', 'ProjetosController@addFunc');
Route::patch('projetos/{projeto}', 'ProjetosController@addBotao');
O problema é que tem que ir na pasta app.blade.php (onde fica o head e body para se colocar os links e scripts) e lá colocar os arquivos .js e .css. Tinha feito isso mas o problema é que o javascript tem que ficar acima de qualquer outro script e, no meu caso, estava lá em baixo.
Answered by RamonVicente on September 13, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP