我按照docs的建议使用
$path = $request->file('avatar')->store('public/avatars');
存储我的头像。在文档中提到以下内容:
默认情况下,store方法将生成一个唯一ID作为文件名。 store方法将返回文件的路径,以便您可以在数据库中存储路径,包括生成的文件名。
现在$path
会是这样的
public/pictures/uQT3sGS1mTQQXbB5vHwCYUiELtr2XAbl7cI08Mme.png
但图片的实际网址是
/storage/pictures/uQT3sGS1mTQQXbB5vHwCYUiELtr2XAbl7cI08Mme.png
在文档中,它声明我可以将$path
直接存储在数据库中。但正如我所看到的,人们必须手动转换
public/pictures/uQT3sGS1mTQQXbB5vHwCYUiELtr2XAbl7cI08Mme.png
至
pictures/uQT3sGS1mTQQXbB5vHwCYUiELtr2XAbl7cI08Mme.png
所以我以后可以使用它
<img src="/storage/{{ $user->avatar }}">
是否有任何Laravel选项,以便store
直接返回正确的链接,或者我必须手动执行此操作吗?
您可以使用Laravel 4中的public_path()
或Laravel 3中的path('public')
为自定义路径创建辅助函数。