我是laravel的新手。我试图将列表框中的多个选择值插入数据库表。这是我使用的选择下拉列表的HTML:
<select name="tsubject[]" id="tsubject[]" multiple>
<option value="0">select</option>
<option value="English">English</option>
<option value="Malayalam">Malayalam</option>
<option value="Hindi">Hindi</option
<option value="Maths">Maths</option>
</select>
我的controller.php是
else{
$teachers =new ForumTeacher();
$teachers ->tsubject=Input::get('tsubject[]');
}
发生的错误如下;
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'tsubject' cannot be null (SQL: insert into `forum_teachers` (`tname`, `tmobile`, `ttype`, `tcls`, `tdivn`, `tsubject`, `updated_at`, `created_at`) values (NamithaP, 9876543211, normalteacher, 6, D, , 2015-02-12 09:09:16, 2015-02-12 09:09:16))
答案 0 :(得分:0)
由于您希望获得输入,请使用$subjects = Input::get('tsubject');
忘记[]。
如果您希望所有人都在同一个字段中,请执行以下操作;
$teachers =new ForumTeacher();
$teachers->tsubject = implode(',', Input::get('tsubject'));
$teachers->save();
或者,一旦您有输入,您可以执行以下操作以插入每个主题,如此;
foreach ($subjects as $subject){
$teachers = new ForumTeacher();
$teachers->tsubject = $subject;
$teachers->save();
}
这将创建数据并将其保存到您的表格中。
根据您正在进行的查询,最佳做法是在单个字段中存储多个选项。我认为最好设置一个数据透视表来处理教师和科目之间的关系。
例如;
教师表数据(没有tsubject字段):
id,tname,tmobile,ttype,tcls,tdivn,updated_at,created_at
1,NamithaP,9876543211,normalteacher,6,D,2015-02-12 09:09:16,2015-02-12 09:09:16
主题数据透视表数据:
NamithaP的id,主题的id
主题表:
主题ID,数学
主题ID,英语
....
您可以阅读有关多对多关系船here的更多信息。
答案 1 :(得分:0)
我假设你有一个教师表和主题表,你有多对多的关系,并且在数据透视表中被链接&#39; subject_teacher&#39;
在laravel中使用刀片更容易。
首先在控制器中填写主题列表
$subjectsList= Subjects::lists('subjecName','id');
// $previousSelectedSubjects = some optional selected subjects to
return View::make('yourview')->with('subjectsList', $subjectsList)->with('previousSelectedSubjects ', $previousSelectedSubjects);
然后在您的视图中使用它:
{{ Form::select('subjects[]', $subjectsList, $previousSelectedSubjects->lists('id'), array('multiple'=>'multiple'))}}
并在您的控制器中,在发布数据后,使用提交的数据
if (Input::has('subjects'))
foreach(Input::get('subjects')as $subject)
{
$forumTeacher= new ForumTeacher; // I think this is your intermediat, pivot, table
$forumTeacher->teacher_id= $id; // you should know how to find this id
$forumTeacher->subject_id= $subject->id;
$forumTeacher->save();
}
如果有些事情不明确,请不要犹豫。