Php Laravel-意外输出,含DB

Php Laravel-意外输出,含DB,php,laravel,types,Php,Laravel,Types,我有个奇怪的问题。 我已经动态创建了表。这就是我使用DB的原因 $spec = DB::table($specjalizacja)->where('pacjent_id','=', $pid)->orderBy('created_at')->get(); 它返回一个数组集合: dd($spec): Collection {#257 ▼ #items: array:2 [▼ 0 => {#262 ▼ +"id": "3" +"pacje

我有个奇怪的问题。 我已经动态创建了表。这就是我使用DB的原因

$spec = DB::table($specjalizacja)->where('pacjent_id','=', $pid)->orderBy('created_at')->get();
它返回一个数组集合:

dd($spec):
Collection {#257 ▼
  #items: array:2 [▼
    0 => {#262 ▼
      +"id": "3"
      +"pacjent_id": "1"
      +"wizyta_id": "5"
      +"a": "111"
      +"b": "abcdefg"
      +"c": "3"
      +"created_at": "2017-05-15 14:41:53"
      +"updated_at": "0000-00-00 00:00:00"
    }
    1 => {#254 ▼
      +"id": "4"
      +"pacjent_id": "1"
      +"wizyta_id": "6"
      +"a": "2222222"
      +"b": "ddddddddd"
      +"c": "3"
      +"created_at": "2017-05-15 14:41:58"
      +"updated_at": "0000-00-00 00:00:00"
    }
  ]
}
问题在于它与模型实例返回的数据类型不同。F.e

$wizyty = Kolejka::where('data','LIKE',$dzis.'%')->where('odbyta','=','0')->where('lekarz_id','=',session('id'))->orderBy('data')->get();

dd($poprzednia):
Collection {#264 ▼
#items: array:2 [▼
0 => Kolejka {#274 ▼
  +fillable: array:30 [▶]
  #connection: "mysql"
  #table: null
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:10 [▼
    "id" => "5"
    "lekarz_id" => "1"
    "pacjent_id" => "1"
    "data" => "2017-05-15 11:00:00"
    "odbyta" => "1"
    "leki" => null
    "uwagi" => null
    "specjalizacja" => "1"
    "created_at" => "2017-05-15 09:52:18"
    "updated_at" => "2017-05-15 09:52:33"
  ]
  #original: array:10 [▶]
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #events: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  #hidden: []
  #visible: []
  #guarded: array:1 [▶]
}
1 => Kolejka {#275 ▶}
]
}
现在在我看来,我可以这样做:

@foreach($poprzednia as $pw)
  {{$pw}}
@endforeach
但如果我这样做了

@foreach($spec as $sp)
  {{$sp}}
@endforeach
或者任何类似于尝试通过执行$sp[0]来获取值的操作,或者任何基本上不成功的操作,最终导致错误
htmlspecialchars()期望参数1是字符串,给定对象

{{$spec}}视图中:(不工作)

{{$poprzednia}}在视图中(有效)


您正在尝试使用php
json\u decode()的函数吗?
您只需要执行以下操作:

{{ json_decode($spec) }} 
还是在前台

@foreach($spec as $sp)
  {{ json_decode($sp) }}
@endforeach

您正在尝试使用php
json\u decode()的函数吗?
您只需要执行以下操作:

{{ json_decode($spec) }} 
还是在前台

@foreach($spec as $sp)
  {{ json_decode($sp) }}
@endforeach

对于两个输出,访问循环中的集合对象的方式相同

@foreach($spec as $sp)
  {{ $sp->id }}
@endforeach

对于两个输出,访问循环中的集合对象的方式相同

@foreach($spec as $sp)
  {{ $sp->id }}
@endforeach

尝试
dd($sp[0]->a)
这里的不同:
DB::table($specjalizacja)
Kolejka::where
。一个是DB查询,另一个是Larvel查询生成器,用于
dd($sp[0]->a)
这里的不同之处:
DB::table($specjalizacja)
Kolejka::where
。一个是DB查询,另一个是Laravel查询构建器,它似乎工作得很好。我现在的问题是,如果我不知道列的名称,我怎么可能访问所有这些数据?我能把它全部打印出来吗?或者通过索引访问它?试试
{{{$sp->all()}}
,它似乎工作得很好。我现在的问题是,如果我不知道列的名称,我怎么可能访问所有这些数据?我能把它全部打印出来吗?或者通过索引访问它?试试
{{{$sp->all()}}
这很奇怪。您是否可以尝试使用此函数将集合转换为数组
$spec->toArray()
,这很奇怪。您能否尝试使用此函数将集合转换为数组
$spec->toArray()