что это за тип данных, чтобы сэкономить на MySQL 1 — 4.9

Я хочу сохранить рейтинги стилей в диапазоне от 1 до 4,9 в моей базе данных MySQL, пожалуйста, какой тип данных я должен использовать? и я продолжаю получать эту ошибку, когда я сохраняю ее как десятичное число (11,0)

ErrorException в строке helpers.php 747:
Метод App \ Wasamar \ Rating :: __ toString () должен возвращать строковое значение

МОЙ КОД

$allInputs = Input::all();
$catalogueStyleId = Input::get('catalogueStyleId');
$userId = Crypt::decrypt( Input::get('user') );
$rating = Input::get('rating');$countUserStyleRating = count( Rating::where('catalogue_style_id',$catalogueStyleId)->where('user_id','=', $userId)->first() );

if ( $countUserStyleRating == 0 ) {
# add new rating data

$rating = new Rating;
$rating->user_id = $userId;
$rating->catalogue_style_id = $catalogueStyleId;
$rating->catalogue_style_rating = $rating;
$rating->save();

echo "Your rating has been noted thank you";
}

0

Решение

Проблема в том, что в вашем десятичном определении нет десятичных знаков. DECIMAL(11,0) означает, что вы хотите сохранить 11 цифр слева от десятичной точки и ни один после.

Вы должны определить ваш десятичный как DECIMAL(2,1) если вы хотите сохранить от 0,1 до 4,9. 2 означает, что вы хотите сохранить две полные цифры, а 1 означает, что вы хотите 1 из этих цифр справа от десятичной точки.

Из документации:

Синтаксис объявления для ДЕСЯТИЧНЫЙ столбец ДЕСЯТИЧНАЯ (M, D).
диапазоны значений для аргументов в MySQL 5.7 следующие:

M максимальное количество цифр (точность). Имеет ряд
От 1 до 65

D количество цифр справа от десятичной точки (
масштаб). Он имеет диапазон от 0 до 30 и не должен превышать M.

Документация MySQL

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]