11

私はlaravel 5.0でmssql2008を実行していますが、DBからデータを取得するたびに、データベースに保存されている形式に関係なく、すべてが文字列として返されているようです。

{
    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にあり、php5_mysqlndをインストールする必要があったmysqlドライバーの問題であることが判明しました。

Ubuntu 14.04 を使用しています。

4

1 に答える 1

15

私はMySQLを使用していますが、場合によっては同じ問題が見つかりました。mutator を使用せず、代わりに属性キャストを使用してください。

protected $casts = [
    'id' => 'integer',
    'owner_id' => 'integer',
    'is_local' => 'integer',
    'vessel_type_id' => 'integer',
    'registration_number' => 'integer',
    'gross_register_tonnage' => 'integer',
    'year_built' => 'integer',
];
于 2015-09-03T04:07:09.497 に答える