2

私は次の簡単なコードを持っています:モデル:

function get_last_ten_entries()         
{
    $this->db->get('property');
}

コントローラ:

public function load_recent()
{
    $data['info'] = $this->propertymodel->get_last_ten_entries();
    $this->load->view('load_property', $data);
}

見る:

<?
echo $data['id'];
?>

これは機能していません。表示されたエラーが言うので、私は何か間違ったことをしていると確信しています

PHPエラーが発生しました

重大度:通知

メッセージ:未定義の変数:データ

ファイル名:views / load_property.php

行番号:2

プロパティは、idというフィールドがあるデータベース内のテーブルです。何が問題なのですか?

皆さん、ありがとうございました

4

2 に答える 2

4

エラーを修正するには、コントローラーの配列インデックスがビューの変数に対応するので$infoはなく、ビューで使用する必要があります。$data

$this->db->get('property')table 内のすべての行を返しますpropertyが、関数名は、最後の 10 エントリを取得しようとしていることを示唆しています。詳細については、 CodeIgniter の Active Record ドキュメントを読むことをお勧めします。returnクエリも必要です。

クエリから結果を生成する必要があります。CodeIgniter の Query Results ドキュメントは、クエリの結果を使用する方法に関する有用な情報を提供します。達成しようとしていることは少しあいまいですが、コードは次のようになります。

モデル

function get_last_ten_entries()         
{
    return $this->db->get('property');  //Perform query (you'll need to update to select what you actually want from you database)
}

コントローラ

public function load_recent()
{
    $data['last_entries'] = $this->propertymodel->get_last_ten_entries();
    $this->load->view('load_property', $data);
}

意見

foreach ($last_entries->result_array() as $entry)
{
   echo $entry['id'];
}

または、配列の代わりにオブジェクトを使用する場合:

foreach ($last_entries->result() as $entry)
{
   echo $entry->id;
}
于 2012-09-16T11:09:43.627 に答える
2

まず第一に、モデル内の関数は何も返しません。これを試して:

function get_last_ten_entries()         
{
    $result = $this->db->get('property');
    return $result->result_array();
}

それを修正すると、変数 $info がビューで使用できるようになります。これは、Codeigniter が与えられた配列を個別の変数に評価するためです。load->view( $view, $givenarray);

$data['variable1'] = 'first var';
$data['array'] = array('id' => 1, 'name' => 'myname' );
$this->load-view('view', $data);

次のようにビューファイルで変数を使用できます

echo $variable1; // echoes 'first var';
echo $array['name']; // echoes myname
于 2012-09-16T11:12:29.103 に答える