【问题标题】:How to send value from controller of Laravel to Vue.js?如何将值从 Laravel 的控制器发送到 Vue.js?
【发布时间】:2019-11-11 04:05:58
【问题描述】:

我有控制器“SomethingController”、模型“ValueModel”和视图“Show.blade.php”以及带有组件“vue-component”的 vue
现在我想从 SomethingControllerShow.balde.php 获取发送值(我从模型“ValueModel”获得,并且值是 JSON 格式),这将包括 vue “vue 组件”。最后,我想从控制器中获取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 !!}"
  • 我测试了各种场景,没有运气重现错误。在我的系统上一切正常。检查json本身是否没有问题。尝试传递一个转换为 json 的简单数组。
  • @PeterMatisko 你能告诉我你的代码吗?
  • 我得到了答案,这里必须使用单引号。数据 = '{!!$e!!}'。这是因为 $e 中的数据有双引号。例如:[{"country":"Alwaysland","zip":"0023"},{"country":"Neverland","zip":"00111"}]。感谢您的帮助!
  • 很高兴您解决了这个问题!我用两种类型的引号都试过了,它仍然有效。无论如何,祝你好运!

标签: php laravel vue.js vuejs2


【解决方案1】:

我得到了答案,这里必须使用单引号。 data = '{!!$e!!}' 这是因为$e 中的数据有双引号。例如:[{"country":"Alwaysland","zip":"0023"},{"country":"Neverland","zip":"00111"}]

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 2018-01-13
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    相关资源
    最近更新 更多