我从Inertia Laravel示例https://github.com/drehimself/inertia-example开始
它只不过是Laravel与Vue在一个单一的代码库中,使用Inertia.js:https://github.com/inertiajs/inertia-laravelhttps://github.com/inertiajs/inertia-vue
我试图访问Laravel的.env变量在我的.vue组件文件中
.env文件:
APP_NAME=ABC
在app\Providers\AppServiceProvider.php中:
public function register()
{
Inertia::share('appName', env('APP_NAME'));
}
在resources\js\Home.vue组件中:
<template>
<div>
<span class="tw-text-left">{{ appName }}</span>
</div>
</template>
<script>
export default {
props: [
"appName",
]
}
</script>
在我的vue控制台中,appName显示为空白。它应该显示“ABC”,但没有。这里发生了什么,以及我如何访问所有的env变量,理想情况下,不通过控制器传递所有内容,这似乎不是很有效?
5条答案
按热度按时间ztigrdn81#
我终于修好了。以下是如何,对于那些感兴趣的人:在AppServiceProvider中:
在vue文件中:
第二部分是我错过了什么。。我试图接受app.name prop ,并错过了$页。希望这对某人有帮助!
h5qlskok2#
我知道这有点老了,但我遇到了同样的问题,上面和周围的网络方法对我不起作用。惯性可能改变了什么?不管怎样,我确实让它工作了。
就像上面一样,在AppServiceProvider中添加以下内容:
然后在Vue组件中访问
$inertia
变量,如下所示:xkftehaa3#
从documentation on the author's website,你需要指示vue将
page
注入到你的组件中,然后你就可以访问共享变量了。例如:
91zkwejq4#
如果你想与视图共享多个变量,请使用以下命令:
aiqt4smr5#
如果你正在使用vite的惯性,你可以访问如下
你可以阅读更多关于vite env https://dev.to/arielmejiadev/load-laravel-env-variables-into-client-code-with-vite-9ld