私はCakePHP MVCを使用しています。 View/Elements内に2つのctpテンプレートを作成しました.1つのctpファイルの中にボタンのクリック機能を追加しました。他のctpファイルでは、ボタンクリック時にファイルのアップロード機能をデータベースに追加しました。だから私は他のctpファイルからのファイルのアップロードのためにボタンのクリック機能を渡す方法を助けが必要です。CakePHP-1つのビューを他のビューボタンにクリックする機能
希望あなたのお手伝いができます。
私はCakePHP MVCを使用しています。 View/Elements内に2つのctpテンプレートを作成しました.1つのctpファイルの中にボタンのクリック機能を追加しました。他のctpファイルでは、ボタンクリック時にファイルのアップロード機能をデータベースに追加しました。だから私は他のctpファイルからのファイルのアップロードのためにボタンのクリック機能を渡す方法を助けが必要です。CakePHP-1つのビューを他のビューボタンにクリックする機能
希望あなたのお手伝いができます。
テンプレート内にロジックを保存しないでください。 はルックが怒鳴る例を投げる:
class Photo extends AppModel {
public $validate = array(
'post_id' => array(
'numeric' => array(
'rule' => array('numeric')
),
),
'img_alt' => array(
'notEmpty' => array(
'rule' => array('notEmpty')
),
),
'rating' => array(
'numeric' => array(
'rule' => array('numeric')
),
),
'other' => array(
'boolean' => array(
'rule' => array('boolean')
),
),
'img_url' => array(
'uploadError' => array(
'rule' => 'uploadError',
'message' => 'Something went wrong with the file upload',
'required' => FALSE,
'on' => 'create'
),
// custom callback to deal with the file upload
'processUpload' => array(
'rule' => 'processUpload',
'message' => 'Something went wrong processing your file',
'required' => FALSE,
'last' => TRUE,
'on' => 'create'
),
),
);
public function processUpload($check=array()) {
if (!empty($check['img_url']['tmp_name'])) {
if (!is_uploaded_file($check['img_url']['tmp_name'])) {
return FALSE;
}
// build full filename
$filename = WWW_ROOT . $this->uploadDir . DS . $this->data['Photo']['post_id'] . DS . Inflector::slug(pathinfo($check['img_url']['name'], PATHINFO_FILENAME)).'.'.pathinfo($check['img_url']['name'], PATHINFO_EXTENSION);
// try moving file
if (!move_uploaded_file($check['img_url']['tmp_name'], $filename)) {
return FALSE;
// file successfully uploaded
} else {
$filename = WWW_ROOT . Inflector::slug(pathinfo($check['img_url']['name'], PATHINFO_FILENAME)).'.'.pathinfo($check['img_url']['name'], PATHINFO_EXTENSION);
// save the file path relative from WWW_ROOT e.g. uploads/example_filename.jpg
$this->data[$this->alias]['filepath'] = str_replace(DS, "/", str_replace(WWW_ROOT, "", $filename));
}
}
return TRUE;
}
}
を私が唯一のコントローラにアップロードロジックを追加した –