MVC - 使用Javascript

时间:2016-01-20 10:50:40

标签: javascript php model-view-controller laravel-5 vue.js

我正在开发一个使用Laravel(适用于PHP的MVC框架)和Vue.js的在线商店,但我认为我会遇到与其他技术相同的问题。

数据库上的My Products表有一些参数,例如id,name,description ...,图像的url存储在数据库的其他表中。产品有许多图像,图像属于一种产品。

如果我从de数据库中获取产品,它很容易并且工作正常。这是ProductController(Laravel代码)并且工作正常:

$products = $categories->find($categoryId)->products()->get();
Product::setMainThumbnailForCollection($products);
dd($products); //dd = die dump => var_dump + die

我收集了一个包含所有产品的数组项目。数据库属性位于内部,数组称为属性,缩略图URL位于该数组之外。请记住,imageUrl来自另一个数据库:

Result for die dump. A collection of Products with imageUrl outside de attributes array.

我在我的Product模型中设置了imageUrl,并且工作正常:

foreach($products as $product){
    $product->mainThumbnail = $this->getAndSetMainThumbnail($product); 
}

我将产品系列发送到de view,这是我使用vue.js的时候。所以我可以使用Javascript访问产品,但只能访问我之前解释过的属性数组内部的那些属性:

<!-- send products to template this is stil php -->
<products list="{{ json_encode($products) }}"></products>

<template id="products-template">
    <!-- here we're using now javascript -->

    <div v-for="product in list">
        <!-- vue.js for loop. I can't access to the thumbnail URL I take from the other database -->
        @{{ product.id }} //WORKS: I have access
        @{{ product.mainThumbnail }} //DOESN'T WORK: I have no access to this property
        <!-- rest of the code -->
        <!-- ... -->

我认为应该是将图像URL附加到ProductController中的属性的方法,但我还没有找到方法。

0 个答案:

没有答案