我是laravel的初学者。现在,我想使用以下代码从数据库中检索数据:
$data = Model::select('col1', 'col2', 'col3')->get();
并将$ data返回到另一个视图。
但是,我想更改列的名称。例如,在将数组返回到视图之前,将col1更改为column_1。如何更改列名?我现在正在使用laravel 5.5。非常感谢你!
答案 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();
请注意,所有列必须具有相同的字符串值。