正如标题所说,我想从表单中提取输入以更改附件的名称。
当我把这个说:
->attach(Swift_Attachment::newInstance($pdf_content, '$post->name', 'application/pdf'))
它不起作用,但如果我像这样喊出这个名字,它就可以了:
->attach(Swift_Attachment::newInstance($pdf_content, 'design.pdf', 'application/pdf'))
有什么想法吗?
很可能 a) $post->name
不是你认为的那样,b) 单引号把你搞砸了。
首先,验证$post->name
是否为字符串/文件名(例如 design.pdf):
echo $post->name;
exit();
然后,一旦你确定它是你所期望的,在将其传递给函数时不要使用单引号:
->attach(Swift_Attachment::newInstance($pdf_content, $post->name, 'application/pdf'))
单引号括的字符串由 PHP 从字面上获取,因此您作为文件名传递的所有内容都是$post->name
而不是 $post->name
的值。 如果您希望将字符串解析为包含变量,请使用双引号 ( ..., "$post->name", ...
) 或根本不使用引号(因为那里没有其他内容要传递)。