复合主键取值报错
版本:laravel5.2
表A有复合主键,Model设置主键:
protected $primaryKey = ['id', 'terminal'];
查询数据出来后:
$result = TableA::where('xx', '=', 'xx')->first();
取字段值:
$result->field;
结果报错:
ErrorException in compiled.php line 11352:Illegal offset type
直接dd($result)是有值的。
如果把复合主键改为唯一主键:
protected $primaryKey = 'terminal';
则没问题;
求解!
难道说,l5.2到现在都还没有完全支持复合主键吗?那为何可以设置复合主键呢?
表A有复合主键,Model设置主键:
protected $primaryKey = ['id', 'terminal'];
查询数据出来后:
$result = TableA::where('xx', '=', 'xx')->first();
取字段值:
$result->field;
结果报错:
ErrorException in compiled.php line 11352:Illegal offset type
直接dd($result)是有值的。
如果把复合主键改为唯一主键:
protected $primaryKey = 'terminal';
则没问题;
求解!
难道说,l5.2到现在都还没有完全支持复合主键吗?那为何可以设置复合主键呢?
1 个回复
Xinpow
赞同来自:
由于主键为复合主键,是非递增主键,所以必须设置Model中变量:
public $incrementing = false;
至此,烦了我2小时的问题解决!