0

我在 Bolt 2.0 中构建了一个带有图像字段的自定义内容类型。

    image:
        type: image

如果未指定文件夹,则上传的文件将转到由年月命名的文件夹

结果:2014-11/myFileName.jpg

通过标签上传,我可以将其更改为其他内容。

    image:
        type: image
        upload: "News/" 

结果:新闻/myFileName.jpg

是否可以在我的成本路径之后获取年月文件夹?

结果:News/2014-11/myFileName.jpg

4

2 回答 2

1

答案是肯定的,但不是很简单,所以如果你想要一种可配置的方式来做到这一点,你需要等待 Bolt 的 2.1 版本,我们将在其中将变量添加到upload:设置中。

如果您不介意设置自己的引导文件并修改应用程序,那么您现在就可以这样做。

日期前缀由 $app['upload.prefix'] 设置生成,当前返回日期字符串。您需要做的是修改它,将其更改为您自己的闭包。我还没有在一个项目上测试过这个,所以如果需要可以调整,但是之后:

$app->initialize();

// Redefine the closure
$app['upload.prefix'] = function() {
    $setting = $app['request']->get('handler');
    $parts = explode('://', $setting);
    $prefix = rtrim($parts[0], '/') . '/';
    return $prefix.date('Y-m') . '/';

};
$app->run();

我们在这里所做的是读取请求中传递的设置,然后将默认日期前缀连接到它的末尾。

如前所述,2.1 将看到在路径中引入变量支持,因此选项如

 upload: news/{%month%}/{%day%}
 upload: uploads/{%contenttype%}/{%id%}

在 contenttypes.yml 文件中很容易定义,所以如果你不介意等待几个月,那么这显然要简单得多。

于 2014-12-01T21:59:49.257 回答
0

从 3.2.9 开始,这个 {%id%} 原则似乎还不起作用...... :(

于 2017-05-31T12:06:43.460 回答