当我在输入字段中使用数组类型名称时显示黑洞错误

时间:2014-04-10 06:49:58

标签: php cakephp blackhole

admin_add_newsletter.ctp

foreach($menu_page_1 as $menu_pages) {
    echo $this->Form->checkbox('top_links.',array(
        'type'=>'checkbox','id'=>'checked_box',
        'value'=>$menu_pages['MenuPage']['id'],
        'label'=>false,'div'=>false,'hiddenField'=>false,
        'saparator'=>'</td><td>'
    ));
    echo '<label for="top_links'.$menu_pages['MenuPage']['id'].'">'.
        $menu_pages['MenuPage']['name'].'</label>';
}

NewsletterController.php

if($this->request->is('post')) {
    print_r($this->data['Newsletter']['top_links']['']);
    exit();
}

错误

The request has been black-holed

Error: The requested address '/admin/newsletters/add_newsletter' was not found on this server.

Stack Trace
CORE/Cake/Controller/Component/SecurityComponent.php line 239 → SecurityComponent->blackHole(NewslettersController, string)
[internal function] → SecurityComponent->startup(NewslettersController)
CORE/Cake/Utility/ObjectCollection.php line 132 → call_user_func_array(array, array)
[internal function] → ObjectCollection->trigger(CakeEvent)
CORE/Cake/Event/CakeEventManager.php line 247 → call_user_func(array, CakeEvent)
CORE/Cake/Controller/Controller.php line 675 → CakeEventManager->dispatch(CakeEvent)
CORE/Cake/Routing/Dispatcher.php line 182 → Controller->startupProcess()
CORE/Cake/Routing/Dispatcher.php line 160 → Dispatcher->_invoke(NewslettersController, CakeRequest, CakeResponse)
APP/webroot/index.php line 108 → Dispatcher->dispatch(CakeRequest, CakeResponse)

帮助我如何在cakephp中使用包含从视图文件到控制器的所有已检查值的复选框,而不显示黑洞错误。

1 个答案:

答案 0 :(得分:0)

问题是您手动构建复选框选项,并在字段名称中添加一个点。

执行此操作的方法是执行此操作the Cake way

$options = array();

foreach($menu_page_1 as $menu_pages) {
    $options[$menu_pages['MenuPage']['id']] = $menu_pages['MenuPage']['name'];
}
echo $this->Form->select('top_links', $options, array(
    'multiple' => 'checkbox'
));