3

私が持っているという名前のコントローラーがcategoriesあります

function description($id=null) {
    $this->load->helper(array('form', 'url'));
    $this->load->library('session');
    $this->load->view('category/description');
    $this->load->model('userdata_model');
    $data = $this->userdata_model->desc($id);
    $this->load->view('category/description', $data);
}

これを行うprint_r($data);と、次の結果が得られます

Array
(
    [0] => stdClass Object
        (
            [id] => 4481
            [title] => Dvd Recorder Post
            [image_name] => 
            [image_name_work] => 
            [video_name] => 
            [work_type] => tape-recrder
            [description] => Test first..
            [agency] => 
            [services] => 
            [photographer] => 
            [company] => 
            [director] => 
            [dop] => 
            [userid] => 
            [display_order] => 99999
            [latest_work] => No
            [status] => Active
            [post_adddate] => 2012-03-26 10:14:07
            [date] => 2012-03-26 10:14:07
            [sub_cat] => dvd-reorder
            [views] => 75
            [url] => Dvd-recorder-post
            [post_cache] => 
            [post_cat_id] => 0
            [post_link] => 
            [post_pubdate] => 
            [post_seo_url] => 
            [post_status] => 0
            [post_type] => 0
        )

)

ビューページにアクセスしようとすると$data、次のエラーが表示されますdescription.php

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: data

Filename: category/description.php

Line Number: 2

誰かが理由を知っていますか?

4

4 に答える 4

2

CodeIgniterはextract、ビューページで変数を生成するために使用します。したがって、呼び出しの2番目の引数として連想配列を渡す必要があり$this->load->view()ます。この場合、変数に名前を付ける場合は、要素キーがで、値がモデルから取得したデータdataである配列を渡す必要があります。data

$data = array('data' => $this->userdata_model->desc($id));
$this->load->view('category/description', $data);
于 2012-09-23T10:06:18.257 に答える
0

モデルを呼び出す前に View を呼び出すため、その行を削除すると、ほとんど問題がなくなります

$this->load->helper(array('form', 'url'));
$this->load->library('session');
$this->load->model('your model');
$data['Posts'] = $this->YourModel->ModelMethod();
$this->load->view('Your view', $data);

あなたの見解では、このような foreach

<?php foreach($Posts as $item): ?>
  <?= item['id']   ;?> Or if you have STD Class <?= item->id   ;?>
<?php endforeach; ?>
于 2016-04-21T06:39:33.707 に答える
0

あなたはこのようにすることができます

 $data["ids"] = $this->userdata_model->desc($id);
 $this->load->view('category/description', $data);

ビューでは、次を使用して変数にアクセスできます

$ids
于 2012-09-23T10:11:12.497 に答える
0

$dataビューページに表示するすべての情報を含む配列です。

コントローラーで:

$this->load->model( 'userdata_model' );
// .. other code
$data = array(
        'description' => $this->userdata_model->desc($id)
    );
$this->load->view('category/description', $data );

ビューで:

<div><?php echo $description; ?></div>
于 2012-09-23T10:14:02.170 に答える