Pocket
LINEで送る

アイテムを登録するときにアイテムの画像も一緒に登録したいときはFilebinderの出番なのですが、Filebinderはモデルにパスを登録するのですが、ベタうちしたくない場合(ベースとなるパスをコントローラーからもモデルからも参照できる1カ所に書きたい場合)は下記のようにやります。
ベースとなるパスは、/Applications/XAMPP/xamppfiles/caketest/とします。

パスはパーミッションを変更しないとFilebinderがフォルダやファイルを作成しようと思ってもできない可能性があります。
下記のような感じでパーミッションを変えておきます。

$ sudo chmod -R 707 caketest

まず、bootstrap.phpに下記のようにベースとなるパスを追加します。

Configure::write('file_path','/Applications/XAMPP/xamppfiles/caketest/');

次にモデルを下記のようにします。

class Item extends AppModel {
	public $actsAs = array('Filebinder.Bindable');
	public $bindFields = array();
	
 	function __construct(){
 		parent::__construct();
		$this->bindFields[] = array(
			'field' => 'photo',
			'tmpPath' => Configure::read('file_path') . 'tmp',
			'filePath' => Configure::read('file_path') . 'item_images/',
		);
 	}

以上です。

これで、開発環境と本番環境でパスが違う場合の最小限の変更ですむと思います。

Pocket
LINEで送る

カテゴリー: プログラミング

コメントください

関連記事

プログラミング

Go言語によるビットコインのフルノード実装btcdを調べる(2)

btcdを実行した際のプログラムの流れを最初から確認してみます。 se 続きを読む …

プログラミング

Go – leveldb

Goで使えるLevelDB。 syndtr/goleveldb ドキュ 続きを読む …

%d人のブロガーが「いいね」をつけました。