有没有办法以拉拉维尔的最后价格获得产品

时间:2019-09-02 19:30:42

标签: php laravel api laravel-5 eloquent

我正在尝试使用他的最后一个价格(最后一个created_at的价格)获得产品

我有:

product表:

id, name,created_at, updated_at

product_prices表:

id, product_id, price, created_at, updated_at

Product模型中:

public function prices()
{
    return $this->hasMany('App\Product_price' , 'product_id', 'id');
}

Product_price模型中:

public function product()
{
    return $this->belongsTo('App\Product' ,  'product_id');
}

ProductController.php上:

public function GetALlProducts()
{

    $products = new Product;
    $products = $products->with('prices');

    $products = $products->get();
    return response()->json($products);
}

我收到了所有价格都差不多的产品,我不想要这个。

1 个答案:

答案 0 :(得分:1)

您可以向您的Product模型添加另一个关系,即:

public function last_price()
{
    return $this->hasOne('App\Product_price')->latest();
}

然后,您可以用您的last_price迅速加载$products ,即:

$products = Product::with('last_price')->get();