如何使用Schema,DB或Eloquent在Laravel 4中获取数组或对象中表的列名。
似乎找不到可用的功能,也许您有一些自定义实现。
谢谢。
在我给出这个答案的时候, Laravel还没有直接做到这一点的方法 ,但是现在您可以:
$columns = Schema::getColumnListing('users');
使用属性将不起作用,因为如果您这样做
$model = new ModelName;
您没有为该模型设置任何属性,您将一无所获。
然后仍然没有真正的选择,因此我不得不深入到数据库级别,这是我的BaseModel:
<?php
class BaseModel extends \Eloquent {
public function getAllColumnsNames()
{
switch (DB::connection()->getConfig('driver')) {
case 'pgsql':
$query = "SELECT column_name FROM information_schema.columns WHERE table_name = '".$this->table."'";
$column_name = 'column_name';
$reverse = true;
break;
case 'mysql':
$query = 'SHOW COLUMNS FROM '.$this->table;
$column_name = 'Field';
$reverse = false;
break;
case 'sqlsrv':
$parts = explode('.', $this->table);
$num = (count($parts) - 1);
$table = $parts[$num];
$query = "SELECT column_name FROM ".DB::connection()->getConfig('database').".INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'".$table."'";
$column_name = 'column_name';
$reverse = false;
break;
default:
$error = 'Database driver not supported: '.DB::connection()->getConfig('driver');
throw new Exception($error);
break;
}
$columns = array();
foreach(DB::select($query) as $column)
{
$columns[] = $column->$column_name;
}
if($reverse)
{
$columns = array_reverse($columns);
}
return $columns;
}
}
使用它来做:
$model = User::find(1);
dd( $model->getAllColumnsNames() );
我正在上传一个图像,并返回带有图像数据(如宽度、大小等)的json数组。 现在,这种创建方法只是通过laravel eloquent模型将新数据插入数据库。我想不出一种方法,插入数据,返回刚刚插入的数据的id,然后以某种方式合并json数组并将其与其他json数据一起返回?希望这是有意义的。
问题内容: 我的桌子如下 输出表如下 我的查询就像: 我无法编写查询;我将如何获得最小列名而不是最小值?我将如何完成田野? 问题答案: 您可以使用一个表达式来做到这一点:
问题内容: 我想将所有mysql表的col名称放入php数组中吗? 是否对此有疑问? 问题答案: 最好的方法是使用INFORMATION_SCHEMA元数据虚拟数据库。特别是INFORMATION_SCHEMA.COLUMNS表… 它非常强大,可以为您提供大量信息,而无需解析文本(例如列类型,列是否可为空,最大列大小,字符集等)… 哦,这是标准的SQL(这是MySQL的特定扩展名)… 有关表之间的
问题内容: 我正在尝试获取已存储在SQL Server 2008 R2中的表的列名。 我已经尝试了一切,但似乎找不到解决方法。 现在这是我在C#中的代码 但这又给了我以下 有任何想法吗? 它显示标签,因为这是我的Web服务发送数据的方式。 问题答案: 您可以使用下面的查询来获取表的列名。下面的查询获取给定名称的用户表的所有列: 在您的代码中,它将如下所示:
问题内容: 我在文档中找不到与此有关的任何信息,但是如何获得在SQLAlchemy中创建的表的列表? 我使用了类方法来创建表。 问题答案: 所有表都收集在SQLAlchemy MetaData对象的属性中。要获取这些表的名称列表: 如果使用声明性扩展,则可能不是您自己管理元数据。幸运的是,元数据仍然存在于基类中, 如果您试图弄清楚数据库中存在哪些表,甚至还没有告诉SQLAlchemy的表,那么可以
问题内容: 目标 我有一个Pandas数据框,如下所示,具有多个列,并希望获取列的总数。 数据框 -: 我的尝试 : 我试图使用和获得列的总和: 这将导致以下错误: 预期产量 我期望输出如下: 或者,我想编辑一个包含总数的新标题: 问题答案: 您应该使用: 然后与配合使用,在这种情况下,索引应设置为与需要求和的特定列相同: 因为如果传递标量,则将填充所有行的值: 另有两个解决方案,请参见以下应用程