我有一个Laravel网络应用,并希望从任何.js文件访问我的Laravel帮助器。
通常,我从blade.php文件中的脚本访问助手,如下所示:-
<script>
function getSiteSettings() {
return JSON.parse('<?php echo json_encode(Helper::getSettings()) ?>');
}
</script>
但是我想从我的script.js文件访问它。 有可能吗?我已经尝试使用localStorage并非常容易地获得它,但是问题是,站点设置中有一些安全数据。
并且如果可能的话隐藏localStorage数据,那么我的问题将得到解决。
PHP-Vars-To-Js-Transformer可能是一种方法,即使我不确定是否会推荐它,但它确实可以满足您的需求。
我认为您最好的选择是立即做您正在做的事情。
或者,在script.js
文件中创建一个页面加载时可以返回这些设置的JSON的资源终结点:
// script.js
document.addEventListener("DOMContentLoaded", function() {
// make an ajax request here and load your setting in a js variable
});
// if using jquery
$(function() {
// make an $.ajax request here and load your setting in a js
})
最简单的解决方案是在getSiteSettings函数内使用Ajax或Axios(正在使用vue)调用api,并在api的响应中返回数据。