Я придерживаюсь простой логики. У меня есть 2 таблицы, attribute_type и attribute_sub_type. В модели AttributeSubType я создал эту функцию.
public function attribute_types()
{
return $this->belongsTo('App\Models\AttributeType');
}
И в модели AttributeType я создал эту функцию.
public function attribute_sub_type()
{
return $this->hasMany('App\Models\AttributeSubType');
}
Мое мнение:
@foreach($attributeSubTypes as $attributeSubType)
<tr>
<td>{!! $attributeSubType->attribute_types['attribute_type'] !!</td> //this line returning null by dd($attributeSubType->attribute_types['attribute_type'])
</tr>
@endforeach
Где 'attribute_type' - столбец в таблице attribute_type. Я использовал ту же логику в другом проекте. И это работает как шарм.
Вы можете привести пример?
Например, замените return $ this-> ownTo ('App \ Models \ AttributeType'); с возвратом $ this-> ownTo ('App \ Models \ AttributeType', 'foreign_key', 'local_key); и сделайте то же самое в функции attribute_sub_type.






Я решил проблему, создав этот метод в модели AttributeSubType.
public function getAttributeType($id)
{
$attribute = AttributeType::find($id);
return $attribute->attribute_type;
}
И так я называю это во View.
@foreach($attributeSubTypes as $attributeSubType)
<tr>
<td>{!! $attributeSubType->getAttributeType($attributeSubType->attribute_type_id) !!}</td>
</tr>
@endforeach
вы можете решить эту проблему лучше с помощью отношения, сначала убедитесь, что у вас есть attribute_type_id в качестве внешнего ключа в вашей модели attributesubtype, ваше предыдущее решение правильное, но черт возьми, эти критерии
Вы указали название таблицы под моделями. Поскольку имена должны быть во множественном числе. И даже вы можете указать внешний ключ в связанных методах моделей