Cakephpでファイルアップロードを便利にしてくれるFilebinderプラグイン。
フックメソッドを当てることもできるので、画像のリサイズやトリミングなんかも可能で、ファイルアップロードが絡む案件はほとんどこのプラグインを使っています。
参考:CakePHPの超便利なファイルアップロードプラグイン、FileBinderプラグインの使い方をまとめてみた。 ? INSPIRE TECH
ただ、(自作)プラグイン内のモデルに対してFilebinderを利用しようとすると、FilebinderController.phpの35行目付近の
$this->loadModel($model);
でコケる事がわかりました。
データベースのAtachmentモデルに保存されたモデルをそのまま呼んでいます。
プラグインのモデルであれば
loadmodel([プラグイン名].[モデル名]);
こうでなくてはいけない。
モデル自身がプラグインに属しているかどうかの情報を持っていれば対応できそうですが、残念ながらモデルのインスタンスを見る限り無さそうです。
きっと方法はあるのだと思いますが、現段階でプラグインに対応させる方法が*1 思いつかないので、プラグイン内のモデルに対して利用するのを断念しました。
FilebinderController.php L:35
loadmodel('Plugin名.'.Model);
こうすれば動くけど・・・プラグインの意味がなくなるからやめました。。。
- たった一つの方法を除いて [↩]