Как преобразовать вывод строки из sql в целое число? - PullRequest
0 голосов
/ 25 января 2019

Я генерирую диаграммы, используя API Google Chart.Я сделал это локально и успешно подготовил графики.Однако, когда я передаю их на сервер (cpanel), диаграммы разрушаются.Я обнаружил, что вывод SQL-запроса для генерации значения диаграммы производится в строковом формате с «6».

Это код для получения значения диаграмм:

   public function gender()
{
$data = DB::table('results')
   ->select(
    DB::raw('gender as gender'),
    DB::raw('count(*) as number'))
   ->groupBy('gender')
   ->get();
   //dd($data);
 $array[] = ['Gender', 'Number'];
 foreach($data as $key => $value)
 {
  $array[++$key] = [$value->gender, $value->number];
 }
 //dd($array);
 return view('gender')->with('gender', json_encode($array));
}

На моем локальном компьютере я пытаюсь получить доступ к данным sql с помощью dd ($ data);выдача:

 Collection {#263 ▼
 #items: array:2 [▼
 0 => {#264 ▼
  +"gender": "female"
  +"number": 6
}
1 => {#266 ▼
  +"gender": "male"
  +"number": 6
}
]
}

Я пытался получить доступ к серверу, используя тот же dd ($ data);

  Collection {#260 ▼
#items: array:2 [▼
0 => {#261 ▼
  +"gender": "female"
  +"number": "6"
}
1 => {#263 ▼
  +"gender": "male"
  +"number": "6"
}
]

Разница в том, что числовое значение из кода сервера находится в строке.

Почему это произошло и как решить проблему?

1 Ответ

0 голосов
/ 25 января 2019

У меня была похожая проблема.Кажется, это проблема PHP.Вы используете одни и те же версии PHP на локальном и производственном уровне?

В любом случае вы также можете явно привести его как целое число UNSIGNED.Я смог сделать это со следующим:

$data = DB::table('results')
   ->selectRaw('gender as gender, CAST(count(*) AS UNSIGNED) as number')
   ->groupBy('gender')
   ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...