当我尝试返回模型时,Laravel 返回非法偏移类型
Posted
技术标签:
【中文标题】当我尝试返回模型时,Laravel 返回非法偏移类型【英文标题】:Laravel return Illegal offset type when I trie return a model 【发布时间】:2016-11-26 13:19:58 【问题描述】:我正在使用一个从数据库返回多个数据的大型 json,我需要返回一个没有任何关系的整数模型,我只需要返回 LampModels 用这个很棒的 json 建模的所有记录.但是 Laravel 总是返回 Illegal offset type。
控制器
public function showAllUdiJson()
$allLamps = LampModels::all();
return Ilumination::with('street')
->with('neighborhood')
->with('iluminationinfo')
->with('economyplan')
->with('lamp')
->with('reactor')
->with('aluminumcable')
->with('steelconduit')
->with('alllamps', $allLamps)
->with('ticket')->get();
灯模型
<?php
class LampModels extends \Eloquent
protected $fillable = [];
protected $table = 'lampmodel';
照明
<?php
class Ilumination extends \Eloquent
protected $fillable = [];
protected $table = 'ilumination';
public function street()
return $this->belongsTo('street');
public function neighborhood()
return $this->hasOne('neighborhood', 'id');
public function iluminationinfo()
return $this->hasOne('iluminationinfo');
public function ticket()
return $this->hasMany('ticket');
public function economyplan()
return $this->hasOne('economyplan', 'id' ,'street_id');
public function lamp()
return $this->hasOne('lamp', 'id');
public function reactor()
return $this->hasOne('reactor', 'id');
public function aluminumcable()
return $this->hasOne('aluminumcable', 'id');
public function steelconduit()
return $this->hasOne('steelconduit', 'id');
See the error
【问题讨论】:
请分享错误信息的全文/踪迹。查看LampModels
和Ilumination
类也可能会有所帮助。
@ThomasKelley 完成
【参考方案1】:
您的错误报告很糟糕,但您的 Ilumination 模型似乎没有 alllamps 方法。
您应该通过关系将 LampModels 附加到您的 Ilumination 模型,坚持做您正在做的事情,因为这是一种错误的方法。
【讨论】:
【参考方案2】:我认为您访问了在遇到偏移错误的照明模型中创建的某处票证方法..
public function ticket()
return $this->hasMany('ticket');
如果你想访问照明->票,你必须使用这个方法与循环。
foreach(illumination->tickets as ticket)
$field1 = ticket->field1;
如果您仍然遇到任何问题,请在此处分享您的错误日志页面..
【讨论】:
以上是关于当我尝试返回模型时,Laravel 返回非法偏移类型的主要内容,如果未能解决你的问题,请参考以下文章