Arrays CodeIgniter:将阵列从模型发送到查看器

Arrays CodeIgniter:将阵列从模型发送到查看器,arrays,codeigniter,view,model,controller,Arrays,Codeigniter,View,Model,Controller,如何将数组从模型发送到视图文件 背景: 我有一个表单,可以将名称放入其中(查看文件)。然后我将此信息传递到我的控制器文件,该文件检查是否有信息添加到表单中。如果没有,则显示错误消息并告诉用户必须添加名称。如果已将名称添加到表单中,则控制器将信息传递给模型,该模型将检查数据库中是否存在任何名称。如果数据库中已经存在一些或所有名称,则将它们传递到数组中。如果名称未添加到数据库中,则模型文件会将其添加到数据库中 我想获得数据库中已经存在的名称数组,并为用户输出这些名称。这就是为什么我需要数据库中已有名

如何将数组从模型发送到视图文件

背景: 我有一个表单,可以将名称放入其中(查看文件)。然后我将此信息传递到我的控制器文件,该文件检查是否有信息添加到表单中。如果没有,则显示错误消息并告诉用户必须添加名称。如果已将名称添加到表单中,则控制器将信息传递给模型,该模型将检查数据库中是否存在任何名称。如果数据库中已经存在一些或所有名称,则将它们传递到数组中。如果名称未添加到数据库中,则模型文件会将其添加到数据库中

我想获得数据库中已经存在的名称数组,并为用户输出这些名称。这就是为什么我需要数据库中已有名称的数组

User add:
Mark
Sophie
Dan
Josh

Already in database:
Mark 
Dan

Array then contains (should be output to the user):
Mark
Dan
我认为可能的一个解决方案是在模型文件中的函数中添加一个return语句。然后按如下方式检索数组:

$data['nameArray'] = $this->model_name->add_name();

但这不会起作用,因为如果用户没有向表单中添加信息,则会显示else语句,并且不会定义$data['nameArray']。在试图将其输出到视图文件时,这会导致错误消息“Undefined variable”。

在将模型结果添加到数组之前,请检查结果是否为空,如果为空,请添加一个值,如
$data['nameArray']=“N/a”
否则,如果它不为空
$data['nameArray']=$this->model_name->add_name()然后在视图中检查$nameArray是否为array并继续使用该数组,否则显示字符串N/A。我就是这样做的


如果用户没有向表单中添加信息如果您的用户必须输入此值,您必须强制他们这样做,请检查库中的codeigniter。

在将模型结果添加到数组之前,请检查结果是否为空,如果为空,请添加一个值,如
$data['nameArray']=“N/a”
else如果它不是空的
$data['nameArray']=$this->model_name->add_name()然后在视图中检查$nameArray是否为array并继续使用该数组,否则显示字符串N/A。我就是这样做的


如果用户没有向表单中添加信息如果用户必须输入此值,则必须强制他们输入,请检查库中的codeigniter。

将阵列从模型传递到codeigniter中的控制器或视图没有困难。像传递任何其他变量一样传递它们

你的想法似乎应该行得通。如果要防止“undefined variable”(未定义变量)错误,可以在视图中使用
isset()
,如下所示:

<?php if isset($nameArray) echo $nameArray; ?>

还有其他方法可以做到这一点,哪种最好取决于您的情况和偏好。

在codeigniter中将阵列从模型传递到控制器或视图并不困难。像传递任何其他变量一样传递它们

你的想法似乎应该行得通。如果要防止“undefined variable”(未定义变量)错误,可以在视图中使用
isset()
,如下所示:

<?php if isset($nameArray) echo $nameArray; ?>

还有其他方法可以做到这一点,哪种方法最好取决于您的情况和偏好。

但如何传递变量?当从控制器传递到查看器时,我使用:$data['text']=“Dettaär testtext。”;$this->load->view('header',$page\u info);$this->load->view('my_view',$data);但我不想从模型中加载视图。我只是不想传递if语句中定义的变量。如果正确,则将变量传递给视图。@Fredrik-我不明白-通常您可以从控制器访问model方法,然后使用$data数组将结果传递给视图。从你的描述来看,这似乎就是你在做的事情?我所描述的不需要从视图加载模型,而是从控制器调用它。但是如何传递变量呢?当从控制器传递到查看器时,我使用:$data['text']=“Dettaär testtext。”;$this->load->view('header',$page\u info);$this->load->view('my_view',$data);但我不想从模型中加载视图。我只是不想传递if语句中定义的变量。如果正确,则将变量传递给视图。@Fredrik-我不明白-通常您可以从控制器访问model方法,然后使用$data数组将结果传递给视图。从你的描述来看,这似乎就是你在做的事情?我所描述的不需要从视图加载模型,而是从控制器调用它。