php - 如何将值从 Laravel 的控制器发送到 Vue.js?
问题描述
我有控制器“SomethingController”,模型“ValueModel”和视图“Show.blade.php”和带有组件“vue-component”的vue
现在我想获取发送值(我从模型“ValueModel”获得,值是JSON格式)从SomethingController到Show.balde.php,其中将包含 vue "vue-component"。最后,我想从控制器中获取 vue 的价值。
我知道如何将值从控制器发送到视图。当值在字符串中时,我已经使用props将它发送到 vue 。但我无法将 JSON 值从 prop 发送到 vue。
控制器
//SomethingController.php
class SomethingControllerextends Controller
{
public function index()
{
$e = ValueModel::get();
$e = json_encode($e->toArray());
return view('pages.Show')->with('e', $e);
}
}
看法
//Show.blade.php
<div class="app">
<vue-component data={!!$e!!}></vue-component>
</div>
Vue
//SomethingController.php
<script>
export default {
props: ['data'],
data(){
return{
d : this.data,
}
},
beforeCreate(){
console.log('helllo');
console.log(d)
},
}
</script>
令我惊讶的是,我正在将数据打印在窗口上。在窗口上打印值后,函数 beforeCreate() 中的操作不起作用。
如图所示,数据正在打印在从控制器发送的窗口上,因为我想要 vue 中的数据。我也想知道为什么要打印它。
从控制器返回的字符串一切正常
解决方案
我得到了答案,这里必须使用单引号。
data = '{!!$e!!}'
这是因为里面的数据$e
有双引号。例如:[{"country":"Alwaysland","zip":"0023"},{"country":"Neverland","zip":"00111"}]
推荐阅读
- google-cloud-build - 将 Java 应用程序部署到 Google App Engine 标准版的适用“cloudbuild.yaml”步骤是什么?
- arrays - 当显示的数据是另一个工作表中的数组时,在 Google 表格中返回空单元格而不是 0
- java - Webots:以编程方式创建节点
- r - 在 R 中使用 cv.glmnet 对象创建模型矩阵以预测新数据
- python - Python将+1添加到dict中包含的列表项
- vim - .vimrc 自动命令如果不是文件类型
- javascript - 防止聊天消息从 MySQL 服务器发送后在浏览器中执行脚本?
- java - 从运行时加载的 java 9 模块加载类时发生 ClassNotFoundException
- firebase - Admob 横幅错位
- javascript - 除非页面刷新,否则带有 gatsby js 的 FaunaDB 客户端 graphql 不会重新呈现