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

Hen*_*eak 7 php laravel laravel-5

我试图从表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`'));
}
Run Code Online (Sandbox Code Playgroud)

Par*_*man 34

您可以通过简单地完成所有列名称...

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

    // OR

    return Schema::getColumnListing($table);

}
Run Code Online (Sandbox Code Playgroud)


小智 10

从模型中获取表名称

$product = new Product;
$table = $product->getTable();
print_r($table);
Run Code Online (Sandbox Code Playgroud)

从模型中获取表列名称

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

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

 $product=new Product;
 $columns=$product->getTableColumns();
 print_r($columns);
Run Code Online (Sandbox Code Playgroud)


Muh*_*raz 7

如果您有多个数据库连接,请尝试以下操作:

添加到你的 php 脚本的顶部

use Illuminate\Support\Facades\Schema;
Run Code Online (Sandbox Code Playgroud)

检索代码中的任意位置

有数据库连接

$columns = Schema::Connection('business')->getColumnListing('users'); // 'business' is your database connection

        echo "<pre>";
        print_r($columns);
        exit();
Run Code Online (Sandbox Code Playgroud)

没有数据库连接

$columns = Schema::getColumnListing('users');

    echo "<pre>";
    print_r($columns);
    exit();
Run Code Online (Sandbox Code Playgroud)