我在将morphMany关系与模型中的列表结合使用时遇到问题。
我有一个Meta模型(morphMany)和一个度假模型。 Resort模型有一个方法metas()就是这样做的:
return $this->morphMany('Meta', 'metable');
public function metas()
{
return $this->morphMany('Meta', 'metable')->lists('value', 'key');
}
现在我想拥有的是一个键/值列表,就像我可以使用hasMany一样:
return $this->morphMany('Meta', 'metable')->lists('value', 'key');
但这不起作用。如果我在不同的表上使用相同的hasMany,它工作正常,所以我假设hasMany和morphMany在对象结构方面必须有区别。
我得到的错误是:
在非对象上调用成员函数addEagerConstraints()[/ vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php,第471行](Laravel 4.2.8)
表格结构:
Schema::create('meta', function(Blueprint $table) {
$table->increments('id');
$table->integer('metable_id')->unsigned();
$table->string('metable_type', 255);
$table->string('key', 128);
$table->text('value');
$table->index('metable_id');
$table->index('key');
});
我希望你们中的任何人都可以帮我解决这个问题。
提前多多感谢。