我有控制器"SomethingController",型号"ValueModel“和视图"Show.blade.php”和vue的组件“vue-ValueModel”。
现在我想从SomethingController获得发送值(我从模型"ValueModel“得到的值是JSON格式的)到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中显示数据一样。我也想知道为什么要印刷。
对于从控制器返回的字符串,所有都可以正常工作。
发布于 2020-06-23 04:18:58
我知道答案了,这里必须用单引号。data = '{!!$e!!}'
,这是因为$e
中的数据有双引号。如:[{"country":"Alwaysland","zip":"0023"},{"country":"Neverland","zip":"00111"}]
https://stackoverflow.com/questions/56819755
复制相似问题