我有一个kohana应用程序,并且我有一个带有多个复选框的表单,用户应该在表单中检查他的偏好。所以我在用户表和偏好表之间有一个关系1:n。我的问题是,我想保存这些偏好,在表格中选择,我不知道如何。
我有以下形式:
<form id="address" method="POST" action="<?= Route::url('Save user preferences' , array('user_id' => $user));?>">
<? foreach ($prefered_products as $pp): ?>
<input type="checkbox" name="user_preferences_preference[]" value="<?= $pp ?>" /><?= $pp->product; ?><br />
<? endforeach; ?>
<button type="submit">Salveaza preferintele tale</button>
</form>
和我保存数据:
foreach ($_POST['user_preferences_preference'] as $up) {
$user_preferences->prefered = $up;
$user_preferences->user = $this->user;
$user_preferences->save();
}
$this->view->message = __('Thank you for your feedback!');
但好像我解析喜好的方式是不正确的,我得到:ErrorException [注意] :为foreach提供的无效参数()
有关如何获得多个$ _post首选项的任何想法? 谢谢!
这意味着'$ _POST ['user_preferences_preference']'不是一个数组(或一个Traversable)。你尝试过'var_dump'吗? – netcoder 2011-06-16 14:23:01
仅当您未选中复选框时才会发出警告? – Rafe 2011-06-16 14:54:14
使用'$ data = Arr :: get($ _ POST,'user_preferences_preference',array())'或'$ data =(array)$ _ POST ['user_preferences_preference']'。 – biakaveron 2011-06-17 05:34:38