このプラグインは、一覧、検索画面などで検索した条件を、別の画面に遷移した後でも復元可能にするコンポーネントを提供します。
- CakePHP 3.x
composer を使用してインストールできます。
以下のようにして、Composer経由でプラグインをCakePHPアプリケーションへ追加します:
composer require elstc/cakephp-restore-query
アプリケーションの config/bootstrap.php ファイルへ、次の行を追加します:
use Cake\Core\Plugin;
Plugin::load('Elastic/RestoreQuery');
コントローラーの initialize メソッドでコンポーネントを呼び出します。
class AppController extends Controller
{
public function initialize()
{
$this->loadComponent('Elastic/RestoreQuery.RestoreQuery', [
'actions' => ['index', 'search'], // クエリストリングを記録するアクション
]);
}
}クエリストリングの記録はコンポーネントをロードすることで、対象アクションに対し自動的に行われます。
テンプレートで以下のようにしてリンクを生成することで、保存されたクエリストリングを呼び出して対象のページへリダイレクトします。
<?=
$this->Html->link('link text', [
'action' => 'index',
'?' => ['_restore' => true], // NOTE: _restore=true とすることで保存されたクエリを呼び出します。
]);
?>クエリストリングを記録するアクションのリスト。
default: ['index', 'search']
状態保存用セッションキーの名前
default: 'StoredQuerystring'
リストア用クエリストリングの名前。
default: '_restore'
リストア用クエリストリングが存在する場合にリダイレクトする。
default: true