如何在laravel中更改列名?

时间:2018-08-15 08:02:54

标签: laravel-5

我是laravel的初学者。现在,我想使用以下代码从数据库中检索数据:

$data = Model::select('col1', 'col2', 'col3')->get();

并将$ data返回到另一个视图。

但是,我想更改列的名称。例如,在将数组返回到视图之前,将col1更改为column_1。如何更改列名?我现在正在使用laravel 5.5。非常感谢你!

2 个答案:

答案 0 :(得分:1)

您可以使用访问器来处理此类属性,但是无法用这种雄辩的方式来查询它们。 但是不要害怕!使用此软件包https://github.com/jarektkaczyk/eloquence,您可以轻松实现所需的目标(尤其是Mappable):

// collection model 
protected $maps =['col1' => 'column_1','col2' => 'column_2',...];

// then you can do this:
$Col = Col::whereId($id)->first();// calls WHERE id = ? sql

$Col->col1; // column_1 column
$Col->col2; // column_2 column
$Col->col2 = 'different name'; // set mutator works as well

它处于开发阶段,并且当前 select 尚不支持,但这只是一两天的时间,select支持已得到支持。已推送。

在您的模型中不要忘记

use Sofa\Eloquence\Eloquence; //base trait 
use Sofa\Eloquence\Mappable; // extension trait

然后在班级内部

 use Eloquence, Mappable; 

这个包裹超级好!节省很多时间。

答案 1 :(得分:0)

您可以使用selectRaw()方法。

$data = Model::selectRaw('col1 as c1, col2 as c2, col3 as c3')->get();

请注意,所有列必须具有相同的字符串值。