我需要生成 PDF 文档并让它们通过电子邮件发送,并通过链接使它们可以访问。通过电子邮件发送是可以的,但我不知道如何创建链接。
由于我使用 Laravel 4,所有链接都通过routes.php
. 那么如何在给定目录中创建指向文件的链接呢?
<a href="http://my.domain.org/assets/pdf/file.pdf">Link</a>
行不通,因为 laravel 不知道该路线...
要生成指向物理文件或目录的链接,您不想通过 Laravel 的应用程序运行(例如通过 index.php),请使用URL::asset()
.
URL::asset('assets/pdf/file.pdf');
这假设您已经在您的服务器上创建了一个要链接到的物理 PDF 文件。如果你的 PDF 文件是动态的并且是通过你的 Laravel 应用程序生成/检索的,你应该使用URL::to()
, URL::route()
, 或类似的。
Martin Tale 是对的,但这是使用 Laravel 的 Blade 完成相同任务的另一种方式:
{{ link_to('/assets/pdf/file.pdf', 'Link') }}
在公共目录中的某处创建该 PDF,然后创建指向该文件的链接,如下所示:
URL::to('path/to/public/directory/file.pdf')
如果您使用 laravel 4 的 MAIL 功能,您可以将其添加到其中
$message->attach($pathToFile);
但是 .pdf 在您的公共目录中的 pdf 文件夹下,这将使它:
$message->attach('pdf/mypdffile.pdf');
您可以添加到电子邮件中的链接也是如此
{{ URL::to('pdf/mypdffile.pdf') }}
您不需要路由来创建可以由刀片完成的链接。
另一种方式,在视图中:
<a href="{{ asset('/your_pdf_file.pdf') }}">some text</a>
此链接将转到public
文件夹。