私はすべてのコントローラ/モデルからアクセスできる可能性があるはずのApp-wideメディアアップロードを作成しようとしています。
は私がすべてアップロードされたファイルの記録を保持するテーブルmedia
上の考え、私のスキーマは次のようになります。CakePHP:アプリ全体のメディアアップロードのベストプラクティス
id
controller //to keep the reference from which controller the file was uploaded
foreign_key //since files should be uploaded to specific records, I need this id
filename
extension
fullname
size
created
modified
私はこれをやってで最善のアプローチがどうなるかわかりません。私はコンポーネント、プラグイン、および動作を考えましたが、まだ分かりません。
My Appには、さまざまなレコードのさまざまなコントローラがあります。
たとえば、プロジェクトを管理するため、プロジェクト編集マスク内の特定のプロジェクトにPDFを添付できるようになりました。
これは他のコントローラが必要とする機能なので、アプリケーション全体に書きたいと思っています。
私は、マスク内からアップロード機能を呼び出すためにヘルパーが必要であると確信しています。
次のようなものがあります:echo $this->Media->uploadMask();
これは、コントローラとIDの準備が整ったアップロードマスクを提供しています。私は現時点で編集中です。
しかし、どのルートをアップロードする必要があるのかわかりません。 /media/upload
のようなものは非常に良いでしょうが、これがMVCに正しく収まるかどうかはわかりません。
特定のコントローラから呼び出すほうがよいでしょうか?または、AJAXアップロードだけが普通のコントローラー/モデルと同じように優れていますか?
以下のメディアプラグインは、id、model、foreign_key、dirname、basename、checksum、group、alternative、created、modifiedというスキーマを持つ単一の 'attachments'テーブルを使って正確にこれを行います。 – deizel