2015-09-17 1 views
5

Это должно быть просто, но я не могу найти его в документации или в другом месте. Как я могу получить TRUNCATE...CASCADE таблицу с внешними ключами в Laravel 5.1 с использованием Eloquent ORM? Использование только User::truncate(); не проходит через аргумент CASCADE.TRUNCATE ... CASCADE в Laravel 5

+0

Является ли база данных MySQL? – gmsantos

+0

Нет, я использую Postgres - я хочу сделать это без написания исходного SQL –

+0

Не думаю, что это возможно. Я ничего не вижу в API для этого и небольшого исследования, которое я сделал, похоже, что люди просто используют 'DB :: statement ('TRUNCATE users CASCADE');' – user3158900

ответ

6

Похоже, единственный способ сделать это с помощью оператора непосредственно:

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

Если вам нужно truncate более одной таблицы, вы можете удалить CASCADE ключевое слово и предоставить список имен таблиц, разделенных по запятой.

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

    if (count($tables) > 1) { 
     DB::statement('TRUNCATE TABLE ' . implode(',', $tables) . ';'); 
    } else { 
     DB::statement('TRUNCATE TABLE ' . $tables[0] . ' CASCADE;'); 
    } 
Смежные вопросы