Как получить список таблиц в базе данных в Laravel 5.1

Мне нужно указать tables в database , я нашел запрос для

 SHOW TABLES LIKE 'merTrans%' 

получить таблицы, но как я могу использовать foreach для получения имен таблиц в Laravel 5.1 ?

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

 $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; } 

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

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

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

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

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

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

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

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

 $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 (что, я думаю, равнозначно базе данных). Возможно, вам придется немного подправить результаты.

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

 $tables = DB::select('SHOW TABLES'); 
 $tables = \DB::select("SHOW TABLES LIKE 'merTrans%'"); foreach ($tables as $table) { echo head($table); } 

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

Рекомендация для LIKE CASES Бхарата

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

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

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

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

  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 } 

Добавьте текущую вещь в свой проект 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