2017-01-18 4 views
1

Я столкнулся с этой ошибкой при попытке отправить мою форму: Общая ошибка: 1366 Неправильное целочисленное значение: «важно» для важности столбца в строке 1 (SQL: insert в проекты (title, dateDebut, dateFin, cout, partenaires_financiers, важность, updated_at, created_at) значения (MyTest, 1996/08/15, 1998/06/28, 15900, paldk ksjd, important, 2017-01-18 15:31 : 57, 2017-01-18 15:31:57))Общая ошибка: 1366 Неправильное целочисленное значение: радиокнопки в laravel

Вот код, я использую:

submit.blade.php:

<label for="Import">Importance</label> 
<div class="form-group"> 

<label class="radio-inline"> 
<input type="radio" id="tres_important" name="importance" value="tres_important">Très important</label> 

<label class="radio-inline"> 
<input type="radio" id="important" name="importance" value="important">Important</label> 
</div> 

миграция "create_projects_table.php":

class CreateProjetsTable extends Migration 
{ 

public function up() 
{ 
Schema::create('projets', function (Blueprint $table) { 
    $table->increments('id',true); 
    $table->string('title'); 
    $table->date('dateDebut'); 
    $table->date('dateFin'); 
    $table->float('cout');   
    $table->string('partenaires_financiers'); 
    $table->integer('importance'); 
    $table->timestamps(); 
}); 
} 

"route.php":

Auth::routes(); 
Route::get('/home', '[email protected]'); 
Route::get('/', function() { 
$projets = \App\Projet::all(); 
return view('welcome', compact('projets')); 
}); 

Route::get('/submit', function() { 
    return view('submit'); 
}); 
Route::post('submit/projects', '[email protected]'); 

"Project_Controller.php":

public function store(Request $request) 
{ 

$validator = Validator::make($request->all(), [ 
    'title' => 'required|max:255', 
    'dateDebut' => 'required|max:255', 
    'dateFin' => 'required|max:255', 
    'cout' => 'required|max:255', 
    'importance' => 'required', 
    //'etude' => 'required', 
    'partenaires_financiers' => 'required', 

]); 

if ($validator->fails()) { 
return back() 
    ->withInput() 
    ->withErrors($validator); 
}  

$projet = new Projet; 

$projet->title = $request->title; 
$projet->dateDebut = $request->dateDebut; 
$projet->dateFin = $request->dateFin; 
$projet->cout = $request->cout; 
$projet->partenaires_financiers = $request->partenaires_financiers; 
$projet->importance = $request->importance; 

$projet->save(); 

return redirect('/submit'); 
} 
} 

Я использую этот код в моем перед добавлением функции «хранения» и она работает:

$create_projets = CreateProjets::find($id); 
$data['importance'] = $create_projets->importance; 
return view('submit', $data); 

Я знаю, что ошибка вызвана «радиокнопками»

У кого-нибудь есть идея, как это исправить?

+0

Ваша значимость в столбце - это целое число, и вы пытаетесь сохранить его. См. '' - значение переключателя является «важным», которое не является целым числом, а строкой. Вот почему он терпит неудачу. – devk

ответ

0

в вашем create_projects_table вы хотите изменить

$table->integer('importance'); к $table->string('importance');

или если imporantance это двоичное значение, как 0/1

$projet->importance = $request->importance === 'important' ? 1 : 0; присвоить бы значение 1, если радио выбран в качестве важный. (не уверен, важна ли важная роль tres)

+0

Да, я изменил значение (важно и важное значение) на 0 и 1 важное значение важнее Что делать, если у меня были переключатели с 3 вариантами, значения будут (0,1 и 2), например ? или это только двоичный – Naj