現在、カスタム モジュール アドオンに取り組んでおり、コントロール パネル管理のテーブルで並べ替えとフィルタリングを使用できるようにしたいと考えていました。EE テーブル クラスとフォーム ヘルパーを使用しています。ここでドキュメントに従って設定しようとしていますが、クラスで「_datasource」メソッドを呼び出そうとすると、このエラーが発生します
Fatal error: Call to undefined method Content_publish::_datasource() in /home/public_html/system/expressionengine/libraries/EE_Table.php on line 162
私はそれがスコーピングの問題だと感じていますが、テーブルクラス '$this->EE->table->datasource()' メソッドでは、データソース関数の名前で文字列値を渡すだけでよいはずです。やってます。
この問題を抱えているのは私だけではないようです。この EE ディスカッション フォーラム スレッドには、詳細とコード例があります。
ドキュメントは本当に明確ではありません。また、EE 独自のコメント モジュールを調べて、理解できるかどうかを調べてみましたが、うまくいきませんでした。誰でもこれを経験したことがありますか?
私が呼んでいるメソッドは次のとおりです。
$data = $this->EE->table->datasource('_datasource');
そして、これは私のクラスでの私の機能です:
function _datasource()
{
// ....
// $query comes from DB result set code above.
// I have omitted it here for brevity
$datarows = array();
foreach ($query->result_array() as $key => $row)
{
$datarows[] = array(
'entry_id' => $row['entry_id'],
'date' => date('Y-m-d',$row['entry_date']),
'author' => $row['screen_name'],
'payment' => $payment_amount,
'status' => $status,
'title' => $edit_href.$row['title']."</a>"
);
}
return $datarows;
}