2016-06-21 5 views
0

私はlaravel + angularjsを使用して完全なcrudを作成していますが、 "edit"部分に問題があります。 その内部サーバーエラー、ので、私はそれが何を意味するのか知らないと私は助け:(悪い英語のため申し訳ありません を必要としています。Laravel + AngularJSで編集

エラーは「localhost/crudtccをGET /公共/ API/V1/colaboradores/editar/3 500(内部サーバーエラー)」

のJavaScriptファイル

app.controller('colaboradoresController', function($scope, $http, API_URL) { 

$http.get(API_URL + "colaboradores") 
     .success(function(response) { 
      $scope.colaboradores = response; 
     }); 

$scope.toggle = function(modalstate, id_colaborador) { 
    $scope.modalstate = modalstate; 

    switch (modalstate) { 
     case 'add': 
      $scope.form_title = "Novo colaborador"; 
      $scope.colaborador = null; 
      break; 
     case 'edit': 
      $scope.form_title = "Dados do colaborador"; 
      $scope.id_colaborador = id_colaborador; 

      $http.get(API_URL + 'colaboradores/editar/' + id_colaborador) 
        .success(function(response) { 
         console.log(response); 
         $scope.colaborador = response; 
        }); 
      break; 
     default: 
      break; 
    } 

    $('#myModal').modal('show'); 
} 

$scope.save = function(modalstate, id_colaborador) { 
    var url = API_URL + "colaboradores/salvar"; 

    if (modalstate === 'edit'){ 
     url += "/editar/" + id_colaborador; 
    } 

    $http({ 
     method: 'POST', 
     url: url, 
     data: $.param($scope.colaborador), 
     headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
    }).success(function(response) { 
     console.log(response); 
     location.reload(); 
    }).error(function(response) { 
     console.log(response); 
     alert('Um erro ocorreu. Check a log para mais detalhes.'); 
    }); 
} 

$scope.confirmDelete = function(id_colaborador) { 

    var isConfirmDelete = confirm('Tem certeza que deseja excluir o registro?'); 
    if (isConfirmDelete) { 
     $http({ 
      method: 'DELETE', 
      url: API_URL + 'colaboradores/remover/' + id_colaborador 
     }). 
       success(function(data) { 
        console.log(data); 
        location.reload(); 
       }). 
       error(function(data) { 
        console.log(data); 
        alert('Falha na exclusão'); 
       }); 
    } else { 
     return false; 
    } 
} 

});

ルートがあなたのように角側のリクエストを書くべき

       <?php 

         /* 
         |-------------------------------------------------------------------------- 
         | Application Routes 
         |-------------------------------------------------------------------------- 
         | 
         | Here is where you can register all of the routes for an application. 
         | It's a breeze. Simply tell Laravel the URIs it should respond to 
         | and give it the controller to call when that URI is requested. 
         | 
         */ 
         Route::get("/colaboradores/gercolaboradores", 
           function() { 
           return view("/colaboradores/gerenciarcolaboradores"); 
         }); 

         Route::get("/api/v1/colaboradores/","[email protected]"); 

         Route::get("/api/v1/colaboradores/editar/{id_colaborador}","[email protected]"); 

         Route::post('/api/v1/colaboradores/salvar/editar/{id_colaborador}', 
            '[email protected]'); 

         Route::post('/api/v1/colaboradores/salvar',  '[email protected]'); 

           Route::delete('/api/v1/colaboradores/remover/{id_colaborador}',      '[email protected]'); 


         ?> 
+0

で詳しく説明しています。どのようなエラー? 500、404?メッセージ ?ウェブコンソールを使用してください! –

+0

HTMLを追加できますか?また、開発ツールを使用して適切なデバッグ情報を入手してください。通常、ショートカットはctrl + shift + i – TiagoRL

+0

です。申し訳ありませんが、エラーは "http:// localhost/crudtcc/public/api/v1/colaboradores/editar/3 500(内部サーバーエラー)"です。 –

答えて

0

...

<?php 

     namespace App\Http\Controllers; 
    $colaborador = new Colaborador; 

use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Usuario; 
use App\Http\Controllers\Controler; 
use App\Colaborador; 

class Colaboradores extends Controller 
{ 
public function index() 
{ 
     return Colaborador::orderBy('id_colaborador', 'asc')->get(); 
} 

public function salvar(Request $request) 
{ 
    $colaborador->nome = $request->input('nome'); 
    $colaborador->rg = $request->input('rg'); 
    $colaborador->orgao_expedidor = $request->input('orgao_expedidor'); 
    $colaborador->cpf = $request->input('cpf'); 
    $colaborador->estado_civil = $request->input('estado_civil'); 
    $colaborador->sexo = $request->input('sexo'); 
    $colaborador->nome_pai = $request->input('nome_pai'); 
    $colaborador->nome_mae = $request->input('nome_mae'); 
    $colaborador->naturalidade = $request->input('naturalidade'); 
    $colaborador->data_nascimento = $request->input('data_nascimento'); 
    $colaborador->login = $request->input('login'); 
    $colaborador->senha = $request->input('senha'); 
    $colaborador->siape = $request->input('siape'); 
    $colaborador->pis = $request->input('pis'); 
    $colaborador->rua = $request->input('rua'); 
    $colaborador->numero = $request->input('numero'); 
    $colaborador->bairro = $request->input('bairro'); 
    $colaborador->cidade = $request->input('cidade'); 
    $colaborador->estado = $request->input('estado'); 
    $colaborador->cep = $request->input('cep'); 
    $colaborador->telefone_fixo = $request->input('telefone_fixo'); 
    $colaborador->telefone_celular= $request->input('telefone_celular'); 
    $colaborador->telefone_comercial = $request->input('telefone_comercial'); 
    $colaborador->email = $request->input('email'); 


    $colaborador->save(); 

    return 'Colaborador salvo com sucesso! ID: ' . $colaborador->id_colaborador; 

} 

public function update(Request $request,$id_colaborador) 
{ 
    $colaborador = Colaborador::find($id_colaborador); 

    $colaborador->nome = $request->input('nome'); 
    $colaborador->rg = $request->input('rg'); 
    $colaborador->orgao_expedidor = $request->input('orgao_expedidor'); 
    $colaborador->cpf = $request->input('cpf'); 
    $colaborador->estado_civil = $request->input('estado_civil'); 
    $colaborador->sexo = $request->input('sexo'); 
    $colaborador->nome_pai = $request->input('nome_pai'); 
    $colaborador->nome_mae = $request->input('nome_mae'); 
    $colaborador->naturalidade = $request->input('naturalidade'); 
    $colaborador->data_nascimento = $request->input('data_nascimento'); 
    $colaborador->login = $request->input('login'); 
    $colaborador->senha = $request->input('senha'); 
    $colaborador->siape = $request->input('siape'); 
    $colaborador->pis = $request->input('pis'); 
    $colaborador->rua = $request->input('rua'); 
    $colaborador->numero = $request->input('numero'); 
    $colaborador->bairro = $request->input('bairro'); 
    $colaborador->cidade = $request->input('cidade'); 
    $colaborador->estado = $request->input('estado'); 
    $colaborador->cep = $request->input('cep'); 
    $colaborador->telefone_fixo = $request->input('telefone_fixo'); 
    $colaborador->telefone_celular= $request->input('telefone_celular'); 
    $colaborador->telefone_comercial = $request->input('telefone_comercial'); 
    $colaborador->email = $request->input('email'); 
    $colaborador->save(); 

    return "Sucesso atualizando Colaborador #" . $colaborador->id_colaborador; 
} 

public function remove(Request $request, $id_colaborador) 
{ 
    $colaborador = Colaborador::where("id_colaborador", $id_colaborador); 

    $colaborador->delete(); 

    return "Colaborador #". $request->input('id_colaborador'). " excluido com sucesso!"; 
} 

public function editar($id_colaborador) 
{ 
    return Colaborador::where("id_colaborador", $id_colaborador); 
} 



} 
?> 

とルートファイルをファイル:

$http.post(API_URL + 'colaboradores/editar/' + id_colaborador, {YOUR_DATA}) 
       .success(function(response) { 
        console.log(response); 
        $scope.colaborador = response; 
       }); 

とパラメータにあなたを渡しますバックエンドに送信したい https://docs.angularjs.org/api/ng/service/ $ http:を参照してください。

説明: あなたが角度GET

$http.get(API_URL + 'colaboradores/editar/' + id_colaborador) 

を使用していて、GETは、トラフのURL以外の任意のデータを渡していない、とあなたがしている

Route::post('/api/v1/colaboradores/salvar/editar/{id_colaborador}', 
           '[email protected]'); 

POST

としてLaravelであなたのルートを定義しPOSTリクエストを送信したかのようにそのデータを取得しようとしています。 GETとPOSTに関する短い説明は、 http://www.w3schools.com/tags/ref_httpmethods.aspWhat is the difference between POST and GET?

関連する問題