0

我是 Laravel(和 OOP)的新手,我正在组建一家商店。我已经为我的产品图片建立了关系,它可以按我的需要工作,但我只是想检查我是否正确/有效地进行操作。如果任何有 Laravel 经验的人可以将目光投向以下内容并提出改进建议或给我一些反馈,我们将不胜感激。

我的产品有很多产品图片。这是我的产品和产品图像模型:

产品:

class Products extends Eloquent {

    public static $table = 'core_Products';
    ........
    public function ProductImages(){
        return $this->has_many('ProductImage', 'product_id');
    }
}

产品图片:

class ProductImage extends Eloquent{

    public static $table = 'core_productimages';

    public function product(){
        return $this->belongs_to('Product');
    }
}

我的产品控制器(这是我认为我可以更有效地做事的地方。当然我不需要传递 product_id 来检索图像。模型不应该已经意识到这一点吗?):

class Store_Product_Controller extends Base_Controller {

public function action_index($serfURL = "", $intSectionID, $pSerfURL = "", $intProductID)
{

            .......
    $view->productImages = Products::find($intProductID)->ProductImages()->get();

    return $view;       


    }

}

最后,我的观点:

foreach ($productImages as $image){
    echo $image->strImageURI . "<br/>";
}
4

1 回答 1

0

在您的 Products 模型中,您可以改为调用您的方法images(),以便在您的控制器中您可以调用->images()您的产品。此外,您的模型应该是单数的,并且不需要'product_id'假设您的 has_many 查询。它看起来像这样:

产品型号:

class Product extends Eloquent {

    public static $table = 'core_Products';

    // ...

    public function images() {

        return $this->has_many('ProductImage');
    }
}

产品图片型号:

class ProductImage extends Eloquent {

    public static $table = 'core_productimages';

    public function product() {

        return $this->belongs_to('Product');
    }
}

产品控制器:

class Store_Product_Controller extends Base_Controller {

    public function action_index($serfURL = "", $intSectionID, $pSerfURL = "", $intProductID) {

        // ...

        $view->product = Product::find($intProductID);

        return $view;       
    }

}

产品视图:

foreach ($product->images as $image) {

    echo $image->strImageURI . "<br/>";
}
于 2013-06-14T06:27:17.453 回答