2015-09-17 17 views
5

यह सीधा होना चाहिए लेकिन मुझे इसे दस्तावेज़ीकरण या कहीं और नहीं मिल रहा है। मैं TRUNCATE...CASCADE व्याख्यान ORM का उपयोग कर Laravel 5.1 में विदेशी कुंजी के साथ एक तालिका कैसे कर सकता हूं? User::truncate(); का उपयोग CASCADE तर्क से गुजरता नहीं है।ट्रंकेट ... लार्वेल में कैस्केड 5

DB::statement('TRUNCATE users CASCADE'); 
+0

एक MySQL डेटाबेस है? – gmsantos

+0

नहीं, मैं पोस्टग्रेस का उपयोग कर रहा हूं - मैं कच्चे एसक्यूएल –

+0

लिखने के बिना ऐसा करने के लिए देख रहा हूं मुझे विश्वास नहीं है कि यह संभव है। मैं इस के लिए एपीआई में कुछ भी नहीं देखता और मैंने जो छोटा सा शोध किया है, ऐसा लगता है कि लोग सिर्फ 'डीबी :: स्टेटमेंट (' ट्रंकैट यूजर कैस्केड ') का उपयोग कर रहे हैं; ' – user3158900

उत्तर

6

यह करने के लिए एक ही रास्ता तरह लग रहा है बयान सीधे चलाकर है अल्पविराम से

$tables = [ 
     'roles', 
     'role_users', 
     'users', 
     'revisions', 
    ]; 

    if (count($tables) > 1) { 
     DB::statement('TRUNCATE TABLE ' . implode(',', $tables) . ';'); 
    } else { 
     DB::statement('TRUNCATE TABLE ' . $tables[0] . ' CASCADE;'); 
    } 
0

आप एक तालिका की तुलना में अधिक truncate करने की जरूरत है, तो आप CASCADE कीवर्ड निकालकर अलग तालिका नामों की सूची प्रदान कर सकते हैं:

संबंधित मुद्दे