Skip to content
これは pieceofcake2/filebinder のドキュメントです。pieceofcake2/cakephp 用の CakePHP 2.x プラグインです。 このフォークについて

Ringコンポーネント ​

Ringコンポーネントは、リクエストでアップロードされたファイルを、ビヘイビアが保存できる形に整えます。確認画面のあるフォームでは、アップロードされたファイルをセッションに保持します。

コンポーネントを追加する ​

コントローラーにコンポーネントを追加します。

php
public $components = ['Session', 'Filebinder.Ring'];

このコンポーネントは、Labelヘルパーもコントローラーに追加します。

アップロードされたファイルを保存する ​

リクエストデータを保存する前に、bindUp()を呼びます。

php
$this->Ring->bindUp();

bindUp()は、モデルのファイルのフィールドごとに次の処理をします。

  1. アップロードされたファイルを、フィールドのtmpPathに移動します。
  2. リクエストデータにあるアップロードの情報を、ファイルの情報に置き換えます。ビヘイビアはこのファイルの情報を保存します。

bindUp()はコントローラーのモデルを使います。別のモデルを使うには、モデルの名前を渡します。

php
$this->Ring->bindUp('Post');

確認画面のあるフォーム ​

確認画面のあるフォームでは、リクエストが何度かに分かれます。ユーザーはフォームでファイルをアップロードし、確認画面を見てから保存します。アップロードしたファイルは、この間ずっと残しておく必要があります。

bindDown()は、リクエストデータにあるファイルの情報をセッションに保存します。バリデーションエラーのあるフィールドは保存しません。

php
$this->Ring->bindDown();

次のリクエストで新しいファイルがアップロードされなければ、bindUp()はセッションからファイルの情報を戻します。フォームのリクエストのたびにbindUp()を呼んでください。

描画の前にbindDown()を自動で呼ぶには、bindUp()の第2引数にtrueを渡します。

php
$this->Ring->bindUp(null, true);

保存前のファイルも、Labelヘルパーで確認画面に表示できます。ファイルのURLを参照してください。

メソッド ​

メソッド説明
bindUp($modelName = null, $autoBindDown = false)リクエストデータにあるアップロードされたファイルをフィールドのtmpPathに移動し、ファイルの情報に置き換えます。ファイルがアップロードされていなければ、bindDown()がセッションに保存したファイルの情報を戻します。$autoBindDownを指定すると、描画の前にbindDown()を呼びます。
bindDown($modelName = null)リクエストデータにあるファイルの情報をセッションに保存します。バリデーションエラーのあるフィールドは除きます。

著作権とライセンスについては LICENSE を参照してください。Cake Software Foundation とは関係ありません。