Model Laravel 5雄辩的belongsTo()外键赢了';行不通

Model Laravel 5雄辩的belongsTo()外键赢了';行不通,model,eloquent,laravel-5,belongs-to,Model,Eloquent,Laravel 5,Belongs To,我发现Schema::create()中列的命名会影响约束的创建,所以在以后的查询中模型无法找到它 模式(简化): 当我打电话的时候 PageElement::find(1)->first()->type()->get() 我得到空的收藏 在Shema中更改这两行后(唯一的更改是将page\u element\u type\u id更改为type\u id): 我得到了集合中的1元素,这是它应该得到的 有人知道关于这个有约束的列是否存在命名问题或规则吗 电子数据交换: 根据请

我发现Schema::create()中列的命名会影响约束的创建,所以在以后的查询中模型无法找到它

模式(简化):

当我打电话的时候

PageElement::find(1)->first()->type()->get()
我得到空的收藏

在Shema中更改这两行后(唯一的更改是将
page\u element\u type\u id
更改为
type\u id
):

我得到了集合中的1元素,这是它应该得到的

有人知道关于这个有约束的列是否存在命名问题或规则吗

电子数据交换: 根据请求在模型中声明()类型:

public function type()
{
    return $this->belongsTo('App\PageElementType');
}

你能显示你的
类型
功能吗

我敢打赌您没有使用第二个参数来设置包含外键的列的名称,因此将其更改为:

return $this->belongsTo('App\YourModel', 'page_element_type_id');

是的,我只在中看到了,但我想知道关于列的名称是否有一些规则或限制。因为我认为很明显,您正在使用->foreign()方法定义外键,而不是在对象转储中,我看到他使用了缩写名“type\u id”。找不到有关自动命名的任何信息…我想没有。您的模型名为
Type
?Type模型名为PageElementTypes那么您已经见证了合法的拉威尔魔法。
public function type()
{
    return $this->belongsTo('App\PageElementType');
}
return $this->belongsTo('App\YourModel', 'page_element_type_id');