如何在Laravel中保存多个复选框

时间:2016-07-12 23:44:49

标签: php mysql laravel checkbox

我的申请需要一些帮助。 我正在使用Laravel 4.2和MySQL数据库。 我试图通过选中一个或多个复选框,将Checkboxes用作用户必须提供给应用程序的一些信息。 View

这是我的观看代码:

Project(#id,project_name,project_city,...,) 
Pieces(#id,#project_id,jeux,photocopie,contrat,certificat,plan,cahier,demande,identification)

在我的模型中,我在Project和Pieces之间有一对多的关系。

$data = \Input::all();
$project = new Project;
$pieces = new Pieces; 

$project->project_name = $data['project_name'];
... // Other instructions
... 
save(); 

正如你所知,我在我的Pieces表中使用boolean属性,所以如果勾选复选框,则它为1,否则为零。 (我不知道它是否是最好的做事方式,同时我对其他有效解决方案的建议持开放态度。)

现在在我的控制器中,我通过以下方式获取所有信息:

{{1}}

我想知道如何使用复选框并保存它们。 如果我在数组中获取复选框值。我是否会使用二维数组来保存它们?我真的被封锁在这里请任何人帮助我!谢谢阅读 。

1 个答案:

答案 0 :(得分:0)

如果你保留他们目前的名字,这可能是一个想法:

...
$project->save();

if (isset($data['pieceafournir'])) {
    $pieceafournir = array_fill_keys((array)$data['pieceafournir'], 1);
    $pieces->fill($pieceafournir);
}

$pieces->project_id = $project->id;
$pieces->save();

使用这些值键入数组,并为每个值设置值。

这只会传递已检查的字段,因此DB必须设置任何未设置为0 / false的字段。

验证并确保传递的字段是表实际具有的字段,这将是值得担心的事情。