[英]How to bind Laravel generated url in Vue.js?
在一个组件中,我正在使用 Axios 获取当前用户的数据。 我以这种格式获取头像的 URL: avatars/1/mNpxJNRrRPbbWSx0kuIL40JQJIF5SM5dscTq3zpv.jpeg
我需要将它插入 Storage::disk("s3")。 那么我如何让变量头像在我的组件中呢?
我试过这样: <img :src="'Storage::disk("s3")->url(' + this.user.avatar + ')'">
但我得到一个错误......
2022年后答案:
最好使用这个包: https ://github.com/tighten/ziggy
它允许您在 vue 文件中使用 call route()
。
2017年回答:
我不确定您是在刀片视图还是组件中使用存储。 为清楚起见,不能在 Vue 组件中使用Storage
门面。 它仅适用于 Laravel。
你有两个选择:允许组件接受一个 prop 或创建一个 Laravel 路由,该路由在Storage
门面的帮助下返回 URL。
#Option 1 - 道具传递
在您的刀片视图中,
<my-component :src="'{{ Storage::disk("s3")->url(' + this.user.avatar + ')' }}">
#选项 2 - Laravel 路线
创建一个简单的路线,例如
Route::get('api/my-avatar', UserController@getAvatar')
在你的 UserController
public function getAvatar()
{
return Storage::disk("s3")->url( auth()->user()->avatar );
}
并从 axios 调用该路由。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.