5.0.0 - 普通 - 已处理
文件保存规则内闭包定义规则不能使用外部变量,提示:未定义变量: request,像$request->controller()、控制器方法内的变量也不能传入$file->rule(),想问一下这个是PHP的闭包问题还是TP5内置问题呢?// 文件上传提交
public function upload(Request $request) {
// 获取表单上传文件
$file = $request->file('file');
if (empty($file)) {
$this->error('请选择上传文件', null, '', 20);
}
// 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->rule(function () {
// 使用自定义的文件保存规则
return $request->controller() . '/' . date('Ymd') . '/' . uniqid() . '_!!' . date('Ymd');
})->move(ROOT_PATH . 'public' . DS . 'uploads' . DS);
if ($info) {
return $info->getSaveName();
} else {
// 上传失败获取错误信息
$this->error($file->getError());
}
} 