我在一个使用CodeIgniter的站点上工作,不知道为什么我的函数没有返回数组,这应该很简单。
在返回之前,我在模型中做了一个转储,只是看看它是否被格式化并有数据(确实如此)。问题似乎出在控制器中——函数没有返回数据,并且在视图中属性为null。
CI或PHP发生了什么可能导致这种情况?
Controller:
function galleryManagement()
{
if (! $this->session->userdata('is_admin'))
{
redirect('admin/index');
}
else
{
/*
$selectedProperty = $this->input->post('selectedProperty');
switch ($selectedProperty)
{
case "westgate":
$selectedID = '1';
break;
case "prospector436":
$selectedID = '2';
break;
case "prospector437":
$selectedID = '3';
break;
case "prospectorcombo":
$selectedID = '4';
break;
default:
$selectedID = '-1';
}
if ($selectedID != '-1')
{
*/
$this->load->model('admin_model');
$propertyObj = $this->admin_model->getProperties();
$data['properties'] = $propertyObj;
$data['propertyID'] = $selectedID;
$data['galleryObj'] = $this->admin_model->getGallery($selectedProperty);
//$data['textarea'] = array ( 'name' => 'altText', 'style' => "width: 320px; height: 36px;" );
$this->load->view('db_site/admin_gallery_view', $data);
/*
}
else
{
$this->load->model('admin_model');
$data['propertiesObj'] = $this->admin_model->getProperties();
$data['propertyID'] = $selectedID;
$this->load->view('db_site/admin_gallery_view', $data);
}
*/
}
}
Model:
function getProperties()
{
$this->db->select('property_id, name');
$this->db->from('property');
$q = $this->db->get();
if ($q->num_rows != 0)
{
$propertiesObj = $q->result();
foreach ($propertiesObj as $property)
{
$properties[$property->name] = $property->property_id;
}
echo "Model Dump: ";
var_dump($properties);
return $properties;
}
else
{
return false;
}
}
View:
<?php
var_dump($properties);
echo form_open('admin/galleryManagement');
echo "<p>Property: " . form_dropdown('selectedProperty', $properties) . "</p>";
echo form_submit('select', 'Select');
?>
在您的视图中,您使用了$properties
,它没有从控制器传递到else块的$data
数组中。如果按照下面的方式更改控制器的else块,它就会工作。
else
{
$this->load->model('admin_model');
$data['properties'] = $this->admin_model->getProperties();
$data['propertyID'] = $selectedID;
$this->load->view('db_site/admin_gallery_view', $data);
}
编辑
从你最近的编辑来看,你似乎已经评论了我所说的else
块。你还有问题吗??