数组到字符串转换php form_helper错误

时间:2013-06-17 06:20:24

标签: php codeigniter

遇到PHP错误

严重性:注意

消息:数组到字符串转换

文件名:helpers / form_helper.php

行号:522

----------------------------- Code

        <?php
        // open the form using CI form helper
        echo form_open('loginController', array('id' => 'login'));
        // first input field
        echo "<div>";
        echo form_label('Username', array('for' => 'login_username'));
        echo form_input(array(
            'type' => 'text',
            'name' => 'username',
            'id' => 'login_username',
            'value' => set_value('username')
        ));
        echo "</div>";
        // second input field
        echo "<div>";
        echo form_label('Password', array('for' => 'login_password'));
        echo form_password(array('type' => 'password', 'name' => 'password', 'id' => 'login_password'));
        echo "</div>";
        // submit button
        echo "<div class='submit'>";
        echo form_button(array('type' => 'submit', 'content' => 'Log in'));
        echo "</div>";

        echo "<div class='errors'>";
        // display if incorrect username/password
        if ($this->session->flashdata('login_error'))
            echo 'Incorrect username/password';
        // display if incorrect input data
        echo validation_errors();
        echo "</div>";
        // close the form
        echo form_close();
        ?>

----------------------------- form_helper.php(第513至537行)

if ( ! function_exists('form_label'))
{
function form_label($label_text = '', $id = '', $attributes = array())
{

    $label = '<label';

    if ($id != '')
    {
        $label .= " for=\"$id\"";
    }

    if (is_array($attributes) AND count($attributes) > 0)
    {
        foreach ($attributes as $key => $val)
        {
            $label .= ' '.$key.'="'.$val.'"';
        }
    }

    $label .= ">$label_text</label>";

    return $label;
}
}

2 个答案:

答案 0 :(得分:0)

你正在以错误的方式调用函数。第三个参数是数组,但是您将第二个参数作为数组传递。

对所有form_label使用以下函数调用。

echo form_label('Username', 'Username',array('for' => 'login_username'));
                          ^^^^^^^^^^^^

功能定义

function form_label($label_text = '', $id = '', $attributes = array())

答案 1 :(得分:0)

下面

echo form_label('Username', array('for' => 'login_username'));

在这里

echo form_label('Password', array('for' => 'login_password'));

您正在为函数的id参数传递一个数组,该数组应为字符串try

echo form_label('Username', "lblUsername", array('for' => 'login_username'));

echo form_label('Username', "lblPassword", array('for' => 'login_username'));

或者只是将null作为id的值传递。