LARAVEL - я хочу получить доступ к основной категории из объекта категории с верхним столбцом _id, который содержит идентификатор основной категории.

Я хочу получить доступ к основной категории из объекта категории с верхним столбцом _id, который содержит идентификатор основной категории.

Ошибка: невозможно использовать объект типа Illuminate \ Database \ Eloquent \ Relations \ BelongsTo как массив

Категории миграции:

Schema::create('categories', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->unsignedBigInteger('upper_id')->default(0);
        $table->string('name', 100);
        $table->string('slug', 100);
        $table->string('description', 500)->nullable();
        $table->timestamps();
        $table->softDeletes();
    });

Категория модели:

class Category extends Model{
use SoftDeletes;
protected $fillable = ['upper_id', 'name', 'description', 'slug',];

public function companies()
{
    return $this->hasMany('App\Company', 'category_id', 'id');
}

public function up_category()
{
    $category = $this->belongsTo('App\Category', 'upper_id', 'id');
    return $category['name'];
}

CategoryController:

public function index()
{
    $categories = Category::where('deleted_at', null)->get();
    return view('admin.category.index', compact('categories'));
}

Вид :

@foreach($categories as $category)
                        <tr>
                            <td>{{ $category->name }}</td>
                            <td>{{ $category->up_category->name }}</td>
                        </tr>
@endforeach

person Community    schedule 29.07.2019    source источник


Ответы (1)


изменить в вашей модели функцию up_category

public function up_category(){
    return $this->belongsTo('App\Category', 'upper_id', 'id')->withDefault([
    'name' => '-'
   ]);
}

Файл Blade правильный.

 <td>{{ $category->up_category->name }}</td> //No change
person Dilip Hirapara    schedule 29.07.2019
comment
Получаю ошибку. Попытка получить имя свойства не-объекта - person ; 29.07.2019
comment
Добавить withDefault. - person Dilip Hirapara; 29.07.2019
comment
Большое спасибо. Это было очень приятно. - person ; 29.07.2019