我使用的是Laravel 5,MySQL。
我正在尝试将数据从数据库中获取到视图中的表中。
我以前在users表上做过这样的操作,并在我的html视图.blade.的一个表中列出了该数据库中的所有用户
通过查看我的用户版本和我的新版本,我可以看到,在刀片中,有一些空格在列名中,即成本代码需要是CostCode或Cost_Code:
<td>{{ $simstotals->Voice Numbers}}</td>
<td>{{ $simstotals->Cost Code }}</td>
<td>{{ $simstotals->Status }}</td>
为此,在数据库中不更改列名:
<td>{{ $simstotals->VoiceNumbers}}</td>
<td>{{ $simstotals->CostCode }}</td>
<td>{{ $simstotals->Status }}</td>
现在,我无法更改数据库列名,这样就可以实现简单的解决方案了。
那么我该如何让它发挥作用,请帮忙!!
- 尝试下面的解决方案:
$雄辩对象->{"列名"}
简单,使用以下语法:
$object->{'Date Found'}
例如,您可以尝试执行以下操作:
$simstotals['Voice Numbers']
;
另一种"黑客"方法是实现自定义的__get
和__set
方法。在这种情况下,您可以使用类似$simstotals->Voice__Numbers
(双下划线)的东西来访问这些字段。
<?php
namespace App'Models;
use Illuminate'Database'Eloquent'Model;
abstract class HackedModel extends Model
{
public function __get($attr)
{
if (strpos($attr, '__') !== false) {
$attr = str_replace('__', ' ', $attr);
}
return parent::__get($attr);
}
public function __set($attr, $value)
{
if (strpos($attr, '__') !== false) {
$attr = str_replace('__', ' ', $attr);
}
parent::__set($attr, $value);
}
}
然后扩展这个模型。
当然,这是一个肮脏的"黑客",我认为这不是一个好主意:)
祝你好运!
我也遇到了这个问题,我重写了将数据拉到数组的SQL查询,以重命名列(这是mssql)
$varName = DB::select(
"SELECT [index]
,[Row]
,[Supplier]
,[Plant]
,[Buyer]
,[PO Created] as POCreated
,[Ord Typ] as OrdTyp
FROM [dbo].[PullDaily]
WHERE XXXX = XXXX");