【问题标题】:Laravel add attribute in collection and display it in Vue.jsLaravel 在集合中添加属性并在 Vue.js 中显示
【发布时间】:2019-09-19 12:03:06
【问题描述】:

我无法为 Laravel 集合中的每个项目添加属性,然后在我的 Vue.js 组件中显示它。

控制器

public function index()
{
    $tousLesBons = BonCadeau::with(['user', 'moyendepaiement'])
        ->orderBy('created_at', 'desc')->get();

    $changed = $tousLesBons->map(function ($value, $key) {
        $value['residualAmount'] = 50;
        return $value;
    });

    return $changed->all();
}

Vue.js 中的 Axios(有效)

fetchBonsCadeaux()
        {
            axios.get('/bonCadeaus')
            .then((res) => { 
                this.bonCadeaux = res.data
            })
            .catch((err) => {
                console.log(err);
            })
        },

显示在我的 Vue.js 表中(与 axios 相同的位置)

<tr v-for="bonCadeau in bonCadeaux" :key="bonCadeau.id">
      <td>{{bonCadeau.serialNumberProduct}}</td>
      <td>{{bonCadeau.cost}}</td>
      <td>{{bonCadeau.amountOfCard}}</td>
      <td>{{boncadeau.residualAmount}}</td>
      <td>{{bonCadeau.moyendepaiement.name}}</td>
      <td>{{bonCadeau.user.name}}</td>
</tr>

如果我删除 residualAmount 属性,我的显示部分也可以工作。我无法理解这个错误。

渲染错误:“TypeError:无法读取属性‘residualAmount’ 未定义”

【问题讨论】:

  • 错误表示boncadeau未定义...该值不存在

标签: laravel vue.js eloquent laravel-collection


【解决方案1】:

你错过了一个变量的拼写。不要忘记,变量是区分大小写的。

这个&lt;td&gt;{{boncadeau.residualAmount}}&lt;/td&gt;

应该是这样的:

&lt;td&gt;{{bonCadeau.residualAmount}}&lt;/td&gt;

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 2018-02-25
    • 2020-04-24
    • 2018-09-22
    • 2019-09-21
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多