Laravel и MySQL SHOW TABLES [дублировать]

16
задан Alex 9 December 2015 в 12:16
поделиться

9 ответов

Чтобы отобразить таблицы в базе данных, вы можете сделать

$tables = DB::select('SHOW TABLES');
foreach($tables as $table)
{
      echo $table->Tables_in_db_name;
}

Вам нужно будет изменить имя db_name на имя вашей базы данных.

РЕДАКТИРОВАТЬ: ДЛЯ КАК СЛУЧАЙ

foreach ($tables as $table) {
    foreach ($table as $key => $value)
        echo $value;
}
33
ответ дан Alex 26 August 2018 в 23:02
поделиться

Я использовал это:

$tables = DB::connection()->getDoctrineSchemaManager()->listTableNames();

Он требует доктрины / dbal в качестве зависимости. Но некоторые функции миграции уже нуждаются в работе DBAL.

13
ответ дан carlosvini 26 August 2018 в 23:02
поделиться
 protected function getNamesTablesDB(){

        $database = Config::get('database.connections.mysql.database');

        $tables = DB::select('SHOW TABLES');

        $combine = "Tables_in_".$database;

        $collection = new \Illuminate\Database\Eloquent\Collection;

        foreach($tables as $table){
            $collection->put($table->$combine, $table->$combine);
        }

        return $collection; //or compact('collection'); //for combo select
    }
0
ответ дан Cristhian Carreño 26 August 2018 в 23:02
поделиться

Добавьте текущую вещь в свой проект Laravel: - В файле контроллера: -

 public function debate_list(){
         $records = DB::table('table_name')->get();
        return view('page_link')->with('records',$records);
    }

В page_link.blade.php добавьте текущее: -

@foreach($records as $class)
      <tr>
        <td>{{$class->id}}</td>
        <td>
        {{$class->name}}
        </td>
        <td>
        {{$class->image_url}}
        </td>
        <td>
       {{ $class->created_at }}
        </td>

        <td>
 <a class="btn btn-primary btn-sm " href="{{route('image_status_list')}}"> VIEW</a>
 </td>

        </tr>
@endforeach
0
ответ дан HeadAndTail 26 August 2018 в 23:02
поделиться

В Laravel вы можете использовать:

$tables = DB::select('SHOW TABLES');
2
ответ дан Mindau 26 August 2018 в 23:02
поделиться

Чтобы получить быстрый массив, содержащий все базы данных, вы можете использовать следующий фрагмент кода:

// Iterate over the results of SHOW TABLES
// strip off all the objects and keys.
$tables = array_map('reset', \DB::select('SHOW TABLES'));

Мне кажется, это самое элегантное решение.

11
ответ дан Paul Olthof 26 August 2018 в 23:02
поделиться

Потому что у меня нет репутации, чтобы добавить комментарий, но я отправляю это как ответ.

Рекомендация для LIKE CASES Bharat

foreach ($tables as $table) {
    echo array_shift(array_values($table));
}

если вам не нравится иметь двойной foreach, но убедитесь, что вы var_dump $ table,

($tables = DB::select('SHOW TABLES');

, чтобы увидеть, с чем вы имеете дело.

1
ответ дан php_bob 26 August 2018 в 23:02
поделиться
$tables = \DB::select("SHOW TABLES LIKE 'merTrans%'");
foreach ($tables as $table) {
  echo head($table);
}
1
ответ дан rseyferth 26 August 2018 в 23:02
поделиться

Для пользователей Postgres:

SHOW TABLES не поддерживается, поэтому вам нужно сделать что-то еще немного. hackey.

$tables = DB::select("SELECT table_schema,table_name, table_catalog FROM information_schema.tables WHERE table_catalog = 'YOUR TABLE CATALOG HERE' AND table_type = 'BASE TABLE' AND table_schema = 'public' ORDER BY table_name;")

Убедитесь, что вы заполняете table_catalog (который я догадка равна базе данных). Возможно, вам придется немного подправить результаты.

7
ответ дан talegna 26 August 2018 в 23:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: