यदि आप बिना किसी तर्क के केवल क्वेरी बनाना/शुद्ध डेटा प्राप्त करना चाहते हैं, तो आप बस क्वेरी बिल्डर का उपयोग कर सकते हैं:
$results = DB::table('search_users')
->where('first_name', $firstname)
->where('last_name', $last_name)
->where('country', $country) //and so on
->whereBetween('loc_lng', array(-0.24272918701172, -0.24272918701172))
->whereBetween('loc_lat', array(51.47026338272, 51.47026338272))
->get();
और निश्चित रूप से यदि आप किसी मॉडल के साथ काम कर रहे हैं तो आप उसी सिंटैक्स का उपयोग कर सकते हैं:
$users = User::where('key1', $value1)
->where('key2', $value2)
->whereBetween('loc_lng', array(-0.24272918701172, -0.24272918701172))
->whereBetween('loc_lat', array(51.47026338272, 51.47026338272))
->get();
AND
. का उपयोग करने के तरीके के बारे में आपके प्रश्न के संबंध में थोड़ा अतिरिक्त स्पष्टीकरण वाक्पटुता में:
AND
डिफ़ॉल्ट रूप से उपयोग किया जाता है यदि आप 2 या अधिक का उपयोग करते हैं where()
एस। तो
DB::table('search_users')->where('first_name', $firstname)
->where('last_name', $last_name)
बराबर
SELECT * FROM search_users WHERE first_name = ? AND last_name = ?
OR
के लिए आप orWhere()
. का उपयोग कर सकते हैं :
DB::table('search_users')->where('first_name', $firstname)
->orWhere('last_name', $othername)
जो बराबर है
SELECT * FROM search_users WHERE first_name = ? OR first_name = ?
और कभी-कभी आपको कुछ अधिक जटिल की आवश्यकता हो सकती है, उदाहरण के लिए:
SELECT * FROM search_users
WHERE first_name = ?
AND (last_name = ? OR last_name = ?)
AND age > 27
वाक्पटु में, यह होगा:
DB::table('search_users')
->where('first_name', $firstname)
->where(function($query) {
$query->where('last_name', $lastName1);
$query->orWhere('last_name', $lastName2);
})
->where('age', '>', 27)