it-blaster/uploadable-behavior

UploadableBehavior 帮助您使用 Propel 处理上传的文件

v1.1.0 2016-08-25 14:03 UTC

This package is not auto-updated.

Last update: 2024-09-25 16:01:10 UTC


README

Scrutinizer Code Quality Build Status License Total Downloads Latest Unstable Version Latest Stable Version

UploadableBehavior 帮助您使用 Propel 处理上传的文件。

安装

将 it-blaster/uploadable-behavior 添加到您的 composer.json 文件中,并运行 composer

...
"require": {
    "it-blaster/uploadable-behavior": "1.0.*"
}
...

在您的 config.yml 中注册行为

...
propel:
    behaviors:
        uploadable: Fenrizbes\UploadableBehavior\Behavior\UploadableBehavior
...

使用方法

将行为添加到您的表

...
    <behavior name="uploadable" />
</table>
...

默认情况下,它查找或创建一个名为 file 的 varchar 列,但您可以配置自己的列

...
    <behavior name="uploadable">
        <parameter name="columns" value="image, document" />
    </behavior>
</table>
...

扩展

行为向基类添加了一些方法以帮助它,您可以覆盖和扩展任何一个。

  • getUploadRoot 返回项目网页目录的绝对路径。默认情况下,它返回最常见的路径,但最佳做法是将此路径设置为控制器中的模型。
  • getUploadDir 返回从根目录到文件文件夹的相对路径。默认情况下,它是 /uploads/<model_name>/<year>/<month>/<day>
  • makeFileName 随机生成文件的名称。
  • moveUploadedFile 移动文件并将其列的新值设置为。如果您要覆盖此方法,请记住它必须返回上传文件的网页路径(当然,如果您不想更改其行为)。

注意

请记住,此行为处理上传的文件(移动它们并设置列的值),不再做其他事情。因此

  • 如果您没有视图转换器或覆盖的getter将字符串文件路径转换为 File 对象,将表单字段的 data_class 选项设置为 null
  • 如果您为文件字段发送一个空值且不想删除列的值,请自行处理;
  • 如果您想有一种删除上传文件的方法,请自行处理;
  • 如果您需要其他任何东西... 好吧,您知道的。