2016-05-23 3 views
0

私のEコマースWebアプリケーションでは、国際配送機能を実装しようとしています。Laravelはcreated_at datetimeフィールドに基づいて最新のレコードを取得します

一つの国際海運ゾーンhasManyの国と国belongsToの shippigゾーン:関係は次のようです。

一つの国際海運ゾーンhasManyの送料レートが適用され、1送料レートbelongsToの 1配送ゾーン。

私がやりたいことは、降順で作成されたすべての送料をフェッチすることです。うわー、私は問題なく正しくそれをフェッチすることができます。ここにのがひねられています。表に同じ出荷レートコードを持つ出荷レートが1つある場合は、フロントエンドでユーザーが選択する国に基づいて、最新のレコードをフェッチし、前のレコードを無視します。私が試してみました

コード:ユーザーが、私はしたくない出荷国を選択したときに

$shippingCountryId = session()->get('new_shipping_country'); 
$shippingCountryAmount = session()->get('new_shipping_amount'); 

if ($shippingCountryId !== null) { 
    $shippingAll = ShippingCountry::find($shippingCountryId) 
            ->zone->rates() 
            ->latest()->get(); 
} else { 
    $shippingAll = ShippingCountry::where('name', 'India')->first() 
            ->zone->rates() 
            ->latest()->get(); 
} 

上記のコードは、その出荷ゾーンの金利のテーブルからすべてのレコードをフェッチします。同じコードで複数のレコードが見つかった場合は、最新のものだけを取得します。

収集方法は私のために動作しませんでした:

unique()、、search()filter()

私は、私はいくつかの愚かな間違いを犯してしなければならないことをかなり確信しているけど、私は何の間違いを見つけることができませんそして、どこ。

これで私を助けてください。私は2日以来これを解決しようとしていますが、まだ成功することはできませんでした。

ご協力いただきまして誠にありがとうございます。前もって感謝します。

答えて

0

井戸latestの方法は注文のためだけです。最新のレコードのみを取り出す場合はgetに変更してください(ここに注文コレクションがあります)。first

関連する問題