首页 > 解决方案 > CodeIgniter 4 返回错误:传递给 set_value() 的参数 2 必须是字符串类型,给定对象

问题描述

我有一个联系页面,其中包含发送电子邮件的表格。发送电子邮件后,系统会将用户重定向到同一页面但收到错误

传递给 set_value() 的参数 2 必须是字符串类型,给定对象

来自控制器的功能

public function contact(){
    $email = $this->request->getGet('email') ? $this->request->getGet('email') : '';
    
    if(isset($_POST['submit'])){
        // ... email submission process
        redirect()->to(base_url('/contact?email='));
    }

    $this->data['email'] = $email;
    return $this->template('pages/contact.tpl.php', $this->data);
}

视图输入

<input
type="text"
class="form-control"
placeholder="Email address"
name="email"
value="<?= !empty($email) ? set_value('email', $email) : set_value('email'); ?>"
required />

根据我上面的代码,如果我输入网址https://www.domain-url/contact?email=testing.mael%40gmail.com,电子邮件将在第一次查看时显示在电子邮件输入表单中。提交表单并重定向网站后,页面显示上述错误。我很困惑,因为错误是将传递的参数值作为对象读取

在此处输入图像描述

标签: redirectsetvaluecodeigniter-4

解决方案


推荐阅读