Если Вы никогда этого не делали и БД к тому же только-только формируете, то следуйте рекомендованным конвенциям по именованию таблиц и столбцов БД.
Вот так будет проще:
1. "Object" с полями:
-id(int,primary)
-name(varchar)
-type_id(int)
2. "Types" c полями:
-id(int,primary)
-name(varchar).
Далее, в модели Object пишите связь belongsTo():
public function type()
{
return $this->belongsTo('App\Type');
}
А в Type - связь hasMany:
public function objects(){
return $this->hasMany('App\Object');
}
И должно всё заработать.
INT Вам выдаётся так как Вы связь и столбец проименовали одинаково. Отдаётся не связь, а содержание одноимённого столбца...