अपडेट करें
अगर आप paginate()
. का इस्तेमाल करते हैं आपकी क्वेरी के साथ लार्वा संभावित मैचों की कुल संख्या की गणना करने के लिए निम्नलिखित SQL कोड को निष्पादित करने का प्रयास करेगा:
select count(*) as aggregate
from `vehicles` inner join `dealers`
on `vehicles`.`dealer_id` = `dealers`.`id`
having distance < 200
जैसा कि आप देख सकते हैं, ऐसा कोई कॉलम या उपनाम नहीं है distance
इस प्रश्न में।
विकल्प 2 मेरे मूल उत्तर में उस समस्या को भी ठीक कर देगा।
मूल उत्तर
वह सीम एक MySQL- सख्त-मोड समस्या है। यदि आप लार्वा 5.3 का उपयोग करते हैं तो सख्त मोड प्रति डिफ़ॉल्ट सक्षम है। आपके पास दो विकल्प हैं:
विकल्प 1:MySQL के लिए config/database.php
. में सख्त मोड अक्षम करें
...
'mysql' => [
...
'strict' => false,
...
],
...
विकल्प 2:WHERE कंडीशन का इस्तेमाल करें
Vehicle::join('dealers', 'vehicles.dealer_id', '=', 'dealers.id')
->select(DB::raw("dealers.id, ( cos( radians(latitude) ) * cos( radians( longitude ) ) ) AS distance"))
->whereRaw('cos( radians(latitude) ) * cos( radians( longitude ) ) < 200');
दस्तावेज़ीकरण:
सर्वर SQL मोड - ONLY_FULL_GROUP_BY