CakephpでPaginator->numbersのリンク先を変える

cakephp 2.6でPaginator->numbersのリンク先を変えるのに調べてみました

参考) Paginator — CakePHP Cookbook 2.x ドキュメント

Config\routes.php
でurlをセットした時に調べました

routes.phpを

    $defaults = array('controller' => 'sample');
    Router::connect('/sample', $defaults);
    Router::connect('/sample/:type/:mode', $defaults);

なんてしたときに

Viewでpaginator->numbersを表示させると

    <?php echo $this->Paginator->numbers(); ?>

sample/type/mode にアクセスした時
ページャーのリンク先が sample?page=2 とかになってほんとは sample/type/mode?page=2
にしたいってときは

    <?php echo $this->Paginator->numbers(array('type'=>$type, 'mode'=>$mode)); ?>

sample/type/mode?param=100 にアクセスした時
ページャーのリンク先が sample/type/mode?page=2 になるので
クエリパラメータ残して sample/type/mode?param=100&page=2 にしたいときは

    <?php echo $this->Paginator->numbers(
            array(
                'type'=>$type, 'mode'=>$mode,
                array('?'=>array('param'=>'100'))
            )
    ); ?>

と ? の配列を追加してやるとできました

コアのソースコードを読んでみつけました

Ubuntuでjavaを切り替える

UbuntuでAndroid Studioをいれてみると、OpenJDKでなくてOracleJDKを使えってことで調べました

切り替えるコマンドを打ってみたら

$ sudo update-alternatives –config java

alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。

  選択肢    パス                                          優先度  状態
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      自動モード
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      手動モード
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          4         手動モード

とでてきたので、いれてましたねー、で切り替えたらできあがりました

必要に応じて

$ sudo update-alternatives –config javac
$ sudo update-alternatives –config javaws

とかするといいそうです

vagrantでVirtualboxとGuestAdditionsのバージョンを合わせたい

$ vagrant up
したらいつからかこんなメッセージが出てました

Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:   4.1.12
VBoxService inside the vm claims: 4.3.30
Going on, assuming VBoxService is correct...
GuestAdditions seems to be installed (4.3.30) correctly, but not running.
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:   4.1.12
VBoxService inside the vm claims: 4.3.30
Going on, assuming VBoxService is correct...

Virtualboxをアップデートしてから、GuestAdditionとバージョンがあってないとか
GuestAdditionのバージョンをあげればよさそうでしたが

$ vagrant plugin list

vagrant-cachier (1.2.1)
vagrant-login (1.0.1, system)
vagrant-omnibus (1.4.1)
vagrant-share (1.1.4, system)
vagrant-vbguest (0.10.0)

dotless-de/vagrant-vbguest が入っててこれが自動でアップデートしてくれるはずだった気が..
これもアップデートされるかなと

$ vagrant plugin install vagrant-vbguest

で確認

$ vagrant plugin list

vagrant-vbguest (0.10.1)

バージョン上がった

$ vagrant reload

GuestAdditions 4.3.30 running --- OK.

したらエラーでなくなりました!
よかった、よかった

bundel install でsqlite3のエラー

あるgemのリポジトリをcloneしてきて、bundleするとsqlite3あたりでエラーが..

$ bundle

An error occurred while installing sqlite3 (1.3.10), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.10'` succeeds before bundling.

sqlite3をいれろということなのでしたがって

$ gem install sqlite3 -v ‘1.3.10’

Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3:
        ERROR: Failed to build gem native extension.

    /home/user/.rbenv/versions/2.2.3/bin/ruby -r ./siteconf20151008-14352-17hawla.rb extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

またしてもエラー
ライブラリが足りないらしい、Ubuntuだったので

$ sudo apt-get install libsqlite3-dev

これでbundleしてみる

$ bundle

と、無事入りました