【问题标题】:How can I get some specific columns name from laravel table. (not all columns name)如何从 laravel 表中获取一些特定的列名。 (并非所有列名)
【发布时间】:2020-01-05 08:28:13
【问题描述】:

我需要从 laravel 表中获取列名。但我得到所有列的名称。如何从该表中获取我需要的某些特定列名称?

我已经尝试过下面的代码来获取所有列的名称:

$columnName = DB::getSchemaBuilder()->getColumnListing('table');

返回["id","name","email","phone_number","created_at","updated_at"] 但我只寻找["name","email","phone_number"] 而不是所有("id","created_at","updated_at") 列。这就是我所说的特定列名。

【问题讨论】:

  • 你应该学习 Laravel 中的 eloquent 和关系。 udemy.com 有一些很棒的 Laravel 初学者教程。
  • 运行代码时出现什么错误,现在出现什么问题?
  • 你想“获取一些特定的列名”。对您来说具体是什么?
  • 我没有收到任何错误。这段代码工作正常。但是此代码返回所有列名,我需要此表中的一些特定列名。并且不知道如何从 laravel 表中获取特定的列名。
  • @Tarasovych "get some specific columns name" 意味着找到那些包含给定子字符串的列。

标签: database laravel


【解决方案1】:

可以使用laravel collectionfilter()函数,即:

$columnNames = collect(DB::getSchemaBuilder()->getColumnListing('table'));
$columnNames = $columnNames->filter(function ($value, $key) {
    return in_array($value, ['id', 'created_at', 'updated_at']) === false;
});

【讨论】:

  • 它说调用数组上的成员函数 filter() :(
  • @AnthonyShoshiGomes 您没有复制我的所有代码,第一行与您的不同。我使用 collect(),它返回一个集合而不是一个数组。
猜你喜欢
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-03
  • 2010-12-03
  • 1970-01-01
  • 2011-04-16
  • 2013-05-15
相关资源
最近更新 更多