1

私は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');
?>
4

1 に答える 1

2

あなたの見解では、コントローラーからelseブロック$propertiesの配列に渡されていないものを使用しました。$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あなたの最新の編集から、あなたは私が話していたブロックにコメントしたようです。あなたはまだ問題を抱えていますか?

于 2012-09-03T01:54:11.550 に答える