2016-07-15 1 views
0

私はサーバーから何らかの情報を得るために$ http.getを使用しています。まず、コントローラはBackendServicesを呼び出し、サービスに私は$ http.get呼び出す:AngularJs - 特定のケースで何も返さないjson_encode

コントローラー:

app.controller('courseController', ['$scope', 'BackendServices', function ($scope, BackendServices) { 
    BackendServices.lookForCourses().then(
     function (response) { 
      console.log(response); 
     }, 
     function (response) { 

     } 
    ); 

    $scope.addCourse = function (courseName) { 
     console.log(courseName); 
    }; 
}]); 

サービス:

app.service('BackendServices', function ($http) { 
    var backendServices = {}; 

    backendServices.lookForCourses = function() { 
     return $http.get('app/backend/lookForCourses'); 
    } 

    return backendServices; 
}); 

PHPファイルは、CakePHPフレームワークの下で動作します。

lookForCourses:これを行う

public function lookForCourses() { 
    $this->autoRender = false; 

    $cursosFind = $this->Curso->find('all', array('fields' => array('nombreCurso'))); 

    $cursos = array(); 

    foreach($cursosFind as $index => $curso) { 
     $cursos[$index]['nombre'] = $curso['Curso']['nombreCurso']; 
    } 

    echo json_encode($cursos); 
} 

iは、コンソール上の応答として得る:

オブジェクト{データ: ""、ステータス:200、設定:オブジェクト、STATUSTEXT: "OK"}

私はこれを行う場合:

var_dump($cursos); 

Iを次を得る:

array (size=3) 
    0 => 
    array (size=1) 
     'nombre' => string 'Tecnologias de la informacion' (length=29) 
    1 => 
    array (size=1) 
     'nombre' => string 'Propedeutico' (length=12) 
    2 => 
    array (size=1) 
     'nombre' => string 'Lectura y redaccion' (length=19) 

しかし、私は次の操作を実行した場合:

$test = array(array('nombre' => 'Propedeutico'), array('nombre' => 'Tecnologias')); 

echo json_encode($test); 

私は応答としてその配列を得るか...

を私は何をしないのですか?これは愚かな間違いかもしれませんが、私はこれまで解決できませんでした...

ありがとうございました!

+0

'echo json_encode($ cursos、true)'についてはどうですか? – Ankh

+0

そのようなレスポンスで同じ結果が... Object {data: ""、status:200、config:Object、statusText: "OK"} –

答えて

1

は私がリクエストの結果がアクセント付きの文字列、たとえば持ち帰るので、それは、少し修正を行って働かせた:

public function lookForCourses() { 
    $this->autoRender = false; 

    $cursosFind = $this->Curso->find('all', array('fields' => array('nombreCurso'))); 

    $cursos = array(); 

    foreach($cursosFind as $index => $curso) { 
     $cursos[$index]['nombre'] = utf8_encode($curso['Curso']['nombreCurso']); 
    } 

    echo json_encode($cursos); 
} 
:「Tecnología」を、私はこのような要素の一つ一つをはutf8_encodeしなければなりませんでした

ut8_encodeを追加することはやりました。

関連する問題