十分に長い間、私はcodeignterを使用しています。そのクラスは本当に使いやすく、便利で便利です。
私のカスタムのPHPフレームワークでページ分割クラスを統合しようとしています.Frmeworkにphpデータを含む動的テーブルを作成する前に、CIセットアップの/ base/system/librariesフォルダにあります。
ここで私は/base/system/libraries/Pagination.phpの$CI =& get_instance();
の問題に直面しています。これはcontroller.phpでインスタンス化されます。 コントローラ全体を使用しているわけではなく、そのクラスだけを使用しているので、投げエラーです。
get_instance()を使用せずに、ページネーションクラスを使用できるソリューションはありますか。CoreignでCodeigniterクラスを使用する必要があります
0
A
答えて
0
ページネーションクラスは、CIにあまり依存しません。単純にそれを書き直して、「外部」へのすべての参照を見つけ出し、割り当てようとする正しいデータに置き換えることができます。そうすれば、PaginationはCIとのやりとりなしで動作し、フレームワークで使用することができます。
if(isset($_GET['cur_page'])){
$this->cur_page = $_GET['cur_page'];
}else{
$this->cur_page = 1;
}
&
if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE)
{
$this->base_url = rtrim($this->base_url).'&'.$this->query_string_segment.'=';
}
else
{
$this->base_url = rtrim($this->base_url, '/') .'/';
}
と
1
$CI =& get_instance();
if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE)
{
if ($CI->input->get($this->query_string_segment) != $base_page)
{
$this->cur_page = $CI->input->get($this->query_string_segment);
// Prep the current page - no funny business!
$this->cur_page = (int) $this->cur_page;
}
}
else
{
if ($CI->uri->segment($this->uri_segment) != $base_page)
{
$this->cur_page = $CI->uri->segment($this->uri_segment);
// Prep the current page - no funny business!
$this->cur_page = (int) $this->cur_page;
}
}
これを削除します。
コールそれを好きでは、
include_once(LIB_DIR.'/pagination.class.php');
$pagination = new Pagination();
$config['base_url'] = 'http://testme.com/stats.php?cur_page=';
$config['total_rows'] = 200;
$config['per_page'] = 20;
$pagination->initialize($config);
echo $pagination->create_links();
関連する問題
- 1. PHP - クラスを使用する必要がありますか?
- 2. ヘルパーメソッドはC#で静的クラスを使用する必要があります
- 3. .netでDebugクラスを使用する必要がありますか?
- 4. Javaクラス内でhtmlコードを使用する必要があります
- 5. なぜクラスがlaravelエイリアスにある場合でもクラスを使用する必要がありますか?
- 6. 派生クラスのコンストラクタは、ベースキーワードを使用する必要がありますか?
- 7. いつSystem.ComponentModel.Containerクラスを使用する必要がありますか?
- 8. NTLMでメンバシップサービスを使用する必要があります
- 9. JavaScriptで「プロトタイプ」を使用する必要があります
- 10. RecyclerViewでCursorLoaderを使用する必要がありますか?
- 11. DynamoDBでEC2を使用する必要がありますか?
- 12. OpenCVでワイヤレスカメラを使用する必要があります
- 13. モデルレイヤー(MVP)でアクティビティーリファレンスを使用する必要があります
- 14. Parcel.writeSerializableをParcelable.writeToParcelで使用する必要がありますか?
- 15. フォントでwebpackを使用する必要がありますか?
- 16. /csv:WriteAll()でError()を使用する必要がありますか?
- 17. ユニットテストでAutoMapperを使用する必要がありますか?
- 18. http.ListenAndServeでgoroutinesを使用する必要がありますか?
- 19. ブラウザでJavascriptを使用する必要があります。
- 20. MySQLでトランザクションオブジェクトを使用する必要があります
- 21. RC5でComponent.readyを使用する必要があります
- 22. Erlangでワーカープールを使用する必要がありますか?
- 23. GCMでGooglePlayServicesを使用する必要がありますか?
- 24. ディスパッチブロックで「weakSelf」を使用する必要がありますか?
- 25. プロダクションコードでfmtを使用する必要がありますか?
- 26. HttpMessageHandlerでConfigureAwait(false)を使用する必要があります
- 27. Node.jsでBabelを使用する必要がありますか?
- 28. ngModelChangeをカスタムフォームコントロールで使用する必要がありますか?
- 29. nimblekitで配列を使用する必要があります
- 30. NodeJs net.socketでsocket.pipe()を使用する必要があります
あなたは逆さまCodeIgniterのライブラリを使用しての全体のコンセプトを持っているようです。あなたがしようとしていることのいくつかのコードを投稿できますか? –
これがあなたの_modus operandi_だと、Zend Frameworkを使った方が良いでしょう。「私はどこでもコントローラを使用していません」という意味ですか?だから、フレームワークの残りの部分を使わずに、あなたのパーソナルプロジェクトでCIのページネーションクラスを取っただけですか? –
@JosephSilber、はい、私はそれを使用するその奇妙な方法を知っています;-)、しかし、私はクラスfile.Andを作成してオブジェクトを作成して使用しています。私はCIのテーブルクラスを次のように使っています: 'include_once(LIB_DIR。 '/ Table $ table-> generate_heading($ dataHeader); $ table-> generate(); $ table-> generate(); 'etc – Debugger