Jose Gonzalez のアップロード プラグイン ( https://github.com/josegonzalez/upload ) を使用しています (または使用しようとしています) 。画像レコードを別のテーブルに保存したいと考えています。github の readme に従いましたが、追加/編集ビューとコントローラーでこの機能を有効にする方法が指摘されていません。これが私がこれまでにしたことです:
アプリ/モデル/Image.php:
class Image extends AppModel {
public $actsAs = array(
'Upload.Upload' => array(
'image' => array(
'thumbnailSizes' => array('thumb' => '20x20')
),
),
);
public $belongsTo = array(
'Profession' => array(
'className' => 'Profession',
'foreignKey' => 'foreign_key'
)
);
}
アプリ/モデル/Profession.php:
class Profession extends AppModel {
public $hasMany = array(
'Image' => array(
'className' => 'Image',
'foreignKey' => 'foreign_key',
'conditions' => array(
'Image.model' => 'Profession'
)
)
);
}
app/View/Professions/add.php (関連部分):
$this->Form->input('Image.image', array('type' => 'file', 'label' => ''));
アプリ/コントローラー/ProfessionsController.php:
public function add() {
if ($this->request->is('post')) {
if ($this->Profession->saveAll($this->request->data)) {
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('Error'));
}
}
}
ファイルはアップロードされておらず、images
テーブルのレコードは次のとおりです。
id | model | foreign_key | name | image | dir | type | size | active
---+-------+-------------+----------+-------+------+-----------+------+--------
1 | | 1 | test.png | | NULL | image/png | 814 | 1
モデル、イメージ、およびディレクトリを空またはヌルにすることはできません。
-functiondebug($this->request->data)
からのデバッグ出力は次のとおりです。add()
array(
'Profession' => array(
[...]
),
'Image' => array(
'image' => array(
'name' => 'test.png',
'type' => 'image/png',
'tmp_name' => '/Applications/MAMP/tmp/php/phpTMHMF9',
'error' => (int) 0,
'size' => (int) 1473
)
)
)
問題は、上で述べたように、アップロードが機能せず、画像記録が不完全であることです。これが理解できることを願っています。モデルと同じテーブルに画像情報を保存したくありません。