当前位置: 首页>>代码示例>>PHP>>正文


PHP UploadFile::removeFile方法代码示例

本文整理汇总了PHP中UploadFile::removeFile方法的典型用法代码示例。如果您正苦于以下问题:PHP UploadFile::removeFile方法的具体用法?PHP UploadFile::removeFile怎么用?PHP UploadFile::removeFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在UploadFile的用法示例。


在下文中一共展示了UploadFile::removeFile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: afterSave

 /**
  * afterSave
  *
  * @param Model $model モデル
  * @param bool $created 新規作成
  * @param array $options オプション
  * @throws Exception
  * @return void
  */
 public function afterSave(Model $model, $created, $options = array())
 {
     foreach ($this->_settings[$model->alias]['fileFields'] as $fieldName => $filedOptions) {
         if (isset($model->data[$model->alias][$fieldName])) {
             $fileData = $model->data[$model->alias][$fieldName];
             if ($fileData['name']) {
                 $uploadFile = $this->UploadFile->create();
                 $pathInfo = pathinfo($fileData['name']);
                 $uploadFile['UploadFile']['plugin_key'] = Inflector::underscore($model->plugin);
                 $keyField = Hash::get($filedOptions, 'contentKeyFieldName', 'key');
                 $uploadFile['UploadFile']['content_key'] = $model->data[$model->alias][$keyField];
                 $uploadFile['UploadFile']['field_name'] = $fieldName;
                 $uploadFile['UploadFile']['original_name'] = $fileData['name'];
                 $uploadFile['UploadFile']['extension'] = $pathInfo['extension'];
                 $uploadFile['UploadFile']['real_file_name'] = $fileData;
                 // フィールド毎にオプションを設定しなおしてsave実行
                 $this->UploadFile->setOptions($filedOptions);
                 // ε(     v ゚ω゚) < 例外処理
                 $this->_uploadedFiles[$fieldName] = $this->UploadFile->save($uploadFile);
             }
         }
     }
     // アップロードがなかったら以前のデータを挿入する
     // formからhiddenで UploadFile.field_name.id 形式でデータが渡ってくる
     // $data['UploadFile']にはモデルデータ編集時に添付されてるファイルについてのデータが入っている
     $uploadFiles = Hash::get($model->data, 'UploadFile', array());
     foreach ($uploadFiles as $uploadFile) {
         // 同じfield_nameでアップロードされてるなら以前のファイルへの関連レコードを新規に追加する必要は無い(過去の関連レコードはそのまま)
         if (isset($this->_uploadedFiles[$uploadFile['field_name']])) {
             // 新たにアップロードされてる
             // 履歴のないモデル(is_latest, is_activeカラムがない)だったら、以前のファイルを削除する
             // 履歴のないモデルか?
             if (!$model->hasField('is_latest')) {
                 // 履歴をもたないモデルなら以前のファイルを削除
                 $this->UploadFile->removeFile($model->id, $uploadFile['id']);
             }
         } else {
             // 同じfield_nameでアップロードされてなければ以前のファイルへの関連レコードを入れる
             $removePath = $model->alias . '.' . $uploadFile['field_name'] . '.remove';
             if (Hash::get($model->data, $removePath, false)) {
                 // ファイル削除にチェックが入ってるのでリンクしない
                 // 今のコンテンツIDで関連テーブルのレコードがあったら、ユーザモデルのように履歴のないモデルなのでそのときは関連テーブルを消す必要があるのでremoveFileは呼んでおく。
                 $this->UploadFile->removeFile($model->id, $uploadFile['id']);
             } else {
                 $uploadFileId = $uploadFile['id'];
                 $this->_saveUploadFilesContent($model, $uploadFileId);
             }
         }
     }
     // 関連テーブルの挿入
     foreach ($this->_uploadedFiles as $uploadedFile) {
         $uploadFileId = $uploadedFile['UploadFile']['id'];
         $this->_saveUploadFilesContent($model, $uploadFileId);
     }
     $this->_uploadedFiles = array();
 }
开发者ID:s-nakajima,项目名称:files,代码行数:65,代码来源:AttachmentBehavior.php


注:本文中的UploadFile::removeFile方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。