2014-11-17 2 views
7

laravel 5.0으로 mssql2008을 실행하고 있으며 DB에서 데이터를 검색 할 때마다 은 데이터베이스에 저장된 형식에 관계없이 모든 문자열이 반환 된 것처럼 보입니다.laravel eloquent 정수가 mssql에서 문자열로 반환되었습니다.

{ 
    id: "1", 
    name: "This is crazy", 
    owner_id: null, 
    is_local: "0", 
    vessel_type_id: "3", 
    registration_number: "34535", 
    gross_register_tonnage: "34", 
    year_built: "3453", 
    status: "active", 
    deleted_at: null, 
    created_at: "Nov 5 2014 03:25:38:577PM", 
    updated_at: "Nov 17 2014 09:06:40:000AM" 
} 

나는 우리가 별도로 필드의 형식을 웅변 뮤 테이터를 사용할 수 있습니다 알고 있지만 여러 정수 필드가 있기 때문에이이 작업을 수행 할 수있는 방법은 없습니다 그리고 난 싶어 필드 각자의 함수를 생성하지 않습니다.

이것은 laravel에 문제가 없습니다. Response :: json 나는 var_dump를 사용하여 배열을 버리고 모든 필드가 문자열로 반환 된 것처럼 보입니다.

나는 전에이 문제가 있었지만, 그것은 mysql과 함께 있었고 그것은 mysql 드라이버의 문제로 php5_mysqlnd를 설치해야한다는 것이 밝혀졌다.

저는 우분투 14.04를 사용하고 있습니다.

+0

php5-mysqlnd 트릭을 가져 주셔서 감사합니다. 나는 우분투도 같은 문제가 발생했습니다 14.04 – JuCachalot

답변

7

나는 MySQL을 사용하며 어떤 경우에는 같은 문제가 발견되었습니다. 뮤 테이터를 사용하지 말고 대신 attribute casting을 사용하십시오.

protected $casts = [ 
    'id' => 'integer', 
    'owner_id' => 'integer', 
    'is_local' => 'integer', 
    'vessel_type_id' => 'integer', 
    'registration_number' => 'integer', 
    'gross_register_tonnage' => 'integer', 
    'year_built' => 'integer', 
]; 
+0

피어 테이블 (관계)에서 캐스팅하는 방법? –