如何从 laravel 的表中选择所有列名?

2022-08-30 15:22:33

我已尝试从表 Teller 中获取所有列名称

功能:

public function getTableColumns($tables)
{
    return DB::select(DB::raw('SELECT 
                                    COLUMN_NAME, 
                                    DATA_TYPE, 
                                    COLUMN_DEFAULT
                                FROM 
                                    INFORMATION_SCHEMA.COLUMNS
                                WHERE 
                                    table_name = `Teller`'));
}

答案 1

您只需执行此操作即可获取所有列名称...

use Illuminate\Support\Facades\Schema;

use Illuminate\Support\Facades\DB;

public function getTableColumns($table)
{
    return DB::getSchemaBuilder()->getColumnListing($table);

    // OR

    return Schema::getColumnListing($table);

}

答案 2

获取表名从模型

$product = new Product;
$table = $product->getTable();
print_r($table);

获取表列名称从模型

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{   
    public function getTableColumns() {
        return $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable());
    }
}

现在,您将获得“产品”表的所有列,如果您在控制器中需要它,那么您可以通过以下方式获得它:

 $product = new Product;
 $columns = $product->getTableColumns();
 print_r($columns);

推荐