答案是肯定的,但不是很简单,所以如果你想要一种可配置的方式来做到这一点,你需要等待 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 文件中很容易定义,所以如果你不介意等待几个月,那么这显然要简单得多。