コントローラ:
$data['result'] = $this->pagination_model->search($searchterm,$limit);
モデル:
public function search($searchterm,$limit)
{
$sql = "SELECT * FROM recipe
WHERE name LIKE '%" . $searchterm . "%' LIMIT " .$limit . ",2";
$q = $this->db->query($sql);
if($q->num_rows() > 0)
{
foreach($q->result() as $row)
{
$data[] = $row;
}
return $data;
}
else
{
return 0;
}
}
foreach ループを使用して結果を出力するとうまくいきますが、テーブル ヘルパーで出力しようとすると、次のようになります。
$this->table->generate($result);
<--- $result
= コントローラーから。
結果を印刷しようとするとエラーが表示されますが、
致命的なエラー: タイプ stdClass のオブジェクトを C:\www\Finals\system\libraries\Table.php の 178 行の配列として使用できません
そのエリアは制限されているため、データを受け入れない理由がわかりません。テーブル ライブラリに詳しい人なら誰でも、どのタイプのデータ テーブルを受け入れるかを明確にすることができます。
印刷に foreach メソッドを使用することもできますが、ci ヘルパーの学習と使用に熱心です。
編集:追加情報、
コントローラー: ページネーションを使用して db 上のすべてのレコードを単純に一覧表示することから。上記は、検索フィルターが完了したときです。
$data['records'] = $this->db->get('recipe', $config['per_page'], $this->uri->segment(3));
テーブル ヘルパーはデータを受け取り、それを出力します。
$This->table->generate($records);
返された両方のデータ セットに違いはありますか。
で調べてみますprint_r()