我有一个应用程序,用户创建用于存储数据的表。表名以前缀为前缀:
$user->id . "_table_name"
我可以检索属于这个用户的所有表,如下所示:
$tables = DB::select("SHOW TABLES LIKE '{$user->id} . _%'");
我可以像这样得到每个表的列:
$columns = Schema::getColumnListing($table);
但我想急切加载每个表的列,如:
$tables = DB::with('columns')->select("SHOW TABLES LIKE '{$user->id} . _%'");
如何才能做到这一点?谢谢。
也许不是最优雅的,但它有效:
$tables = DB::select("SHOW TABLES");
foreach($tables as $table) {
$columns = Schema::getColumnListing($table->Tables_in_apiapi);
$table->columns = $columns;
}