1

遇到 PHP 错误

严重性:通知

消息:数组到字符串的转换

文件名:helpers/form_helper.php

行号:522

这是我的包含表单的视图

        <?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();
        ?>

这是 PHP 错误中提到的 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;
}
}
4

2 回答 2

1

这里

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

和这里

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

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

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

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

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

于 2013-06-17T06:30:24.640 回答
0

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

对所有使用以下类型的函数调用form_label

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

函数定义

function form_label($label_text = '', $id = '', $attributes = array())
于 2013-06-17T06:30:14.923 回答