我在将文件保存为用户上传文件时登录的正确用户名时遇到问题。
我有这样的语法:
$file->move('../UserFolders/{[username}]/photos/', $name);
那么laravel会创建一个名为:
的文件夹{[username}],而不是指向记录的用户名
答案 0 :(得分:2)
您的语法可能不正确。
$file->move('../UserFolders/{[username}]/photos/', $name);
^^
`-- here
打开花括号,打开方括号,然后关闭花括号。尝试将它们嵌套为{[username]}
(我假设{[]}是一些Laravel魔法,由move()
解码):
$file->move('../UserFolders/{[username]}/photos/', $name);
或者$username
确实在本地范围内可用,只需
$file->move("../UserFolders/{$username}/photos/", $name);
(如果创建了一个文件夹' {[username]}'那么就没有这样的Laravel魔法,你应该查看文档。)
如果您将代码放在单引号中,请记住代码不会被评估。您需要将其括在双引号:
中$file->move("../UserFolders/{Auth::user()->name}/photos/", $name);
或
$folderName = Auth::user()->name;
$file->move("../UserFolders/{$folderName}/photos/", $name);
答案 1 :(得分:1)
因为您的语法错误,所以应该
$file->move('../UserFolders/'.$username.'/photos/', $name);
因为您在控制器中执行此操作,因此只能使用$访问变量,并且必须将其与字符串连接