laravel не может получить доступ к атрибутам отношений - PullRequest
0 голосов
/ 11 октября 2019

У меня есть модель продукта следующим образом:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    //

    public function Category(){
        return $this->belongsTo('App\Category');
    }
    public function size_unit(){
        return $this->belongsTo('App\size_unit', 'size_unit');
    }
}

таблица size_units имеет два столбца: id, единица измерения, в таблице продукта есть столбец size_unit, который является внешним ключом, который ссылается на идентификатор таблицы size_units

когда я пытаюсь получить доступ к столбцу единицы для продукта, используя:

{{ $product->size_unit->unit }}

, я получаю следующую ошибку:

«Попытка получить свойство« единица »не-объекта»

но когда я использую:

{{ dd($product->size_unit() }}

, я могу видеть единицу в отношении -> атрибуты, поэтому я попытался использовать:

$product->size_unit()->unit

Iполучить следующую ошибку:

"Неопределенное свойство: Illuminate \ Database \ Eloquent \ Relations \ BelongsTo :: $ unit"

Я получаю продукт, используя с ('size_unit)

подскажите пожалуйста что не так и как это исправить?

1 Ответ

0 голосов
/ 11 октября 2019

Переименуйте size_unit class в SizeUnit, и ваши отношения должны быть такими, как показано ниже.

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

public function sizeUnit(){
    return $this->belongsTo('App\SizeUnit', 'size_unit');
}

Вы должны получить доступ к таким свойствам sizeUnit:

dd($product->sizeUnit);

FollowСоглашения об именах Laravel

...