एक प्रश्न में ऐसा करने का कोई तरीका नहीं है (जब तक कि आप Laravel 5.7 पर न हों), हालाँकि मैं एक ही मुद्दे पर आया था और यह सुनिश्चित करना चाहता था कि मैं QueryBuilder के साथ एक निश्चित चयन I बिल्ड का उपयोग करना जारी रख सकता हूँ।
तो आप क्या कर सकते हैं, चीजों को आधा रखने के लिए और कार्यक्षमता का पुन:उपयोग करने के लिए जिसने पहले एक चुनिंदा बयान बनाया है, यह है:
/**
* Wherever your Select may come from
**/
$select = User::where(...)
->where(...)
->whereIn(...)
->select(array('email','moneyOwing'));
/**
* get the binding parameters
**/
$bindings = $select->getBindings();
/**
* now go down to the "Network Layer"
* and do a hard coded select
*/
$insertQuery = 'INSERT into user_debt_collection (email,dinero) '
. $select->toSql();
\DB::insert($insertQuery, $bindings);
लारवेल 5.7 अपडेट करें
Laravel 5.7.17 के अनुसार आप ->insertUsing() का उपयोग कर सकते हैं। देखें यहां ब्योरा हेतु। इसे इंगित करने के लिए @Soulriser धन्यवाद।
तो उपरोक्त क्वेरी इस तरह दिखेगी:
DB::table('user_debt_collection')->insertUsing(['email','dinero'], $select);