Как получить простой массив имен БД с фасадом БД Laravel? - PullRequest
1 голос
/ 29 апреля 2020

Когда я делаю это:

$databases = DB::select("SELECT `schema_name` FROM information_schema.schemata");

dd($databases);

Я получаю это:

array:1 [
  0 => {#1304
    +"schema_name": "database_name"
  }
]

, и я хочу это:

array:1 [
  0 => "database_name"
]

Как я могу получить простой массив только с именами БД, или более важный вопрос: ПОЧЕМУ это не простой массив?

Ответы [ 2 ]

3 голосов
/ 29 апреля 2020

Вы можете просто сделать это:

return DB::table('information_schema.schemata')->pluck('schema_name');
2 голосов
/ 29 апреля 2020

Вы можете использовать array_map для результата, который является массивом объектов:

$result = \DB::select("SELECT `schema_name` FROM information_schema.schemata");

$result = array_map(function($item) {
    return $item->schema_name;
}, $result);

dd($result);

Вывод dd будет выглядеть примерно так:

array:7 [▼
    0 => "information_schema"
    1 => "msg_api"
    2 => "mysql"
    3 => "performance_schema"
    4 => "sys"
    6 => "wpblog"
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...