2016-08-10 4 views
0

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

ErrorException в helpers.php линии 747: Метод App \ Wasamar \ Рейтинг :: __ 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"; 
    } 

ответ

3

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

Необходимо указать десятичное число в виде DECIMAL(2,1), если вы хотите сохранить от 0,1 до 4.9. 2 означает, что вы хотите сохранить две полные цифры, а 1 означает, что вы хотите 1 из этих цифр справа от десятичной точки.

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

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

М это максимальное количество цифр (точность). Он имеет диапазон от 1 до 65.

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

MySQL Documentation

 Смежные вопросы

  • Нет связанных вопросов^_^