Используете Eloquent для получения названия родительской категории? - PullRequest
1 голос
/ 19 июня 2020

У меня есть простое приложение для рекурсивных отношений hasMany с неограниченным количеством подкатегорий, код работает без проблем, но не получает имя или заголовок родительской категории.

когда я пытался l oop через данные исходящий из БД, он имеет родительский идентификатор, но не имя родительской категории, мне нужно получить имя родительской категории, вот код для контроллера и модели

CategoryController. php

<?php

namespace App\Http\Controllers;

use App\Category;
use Illuminate\Http\Request;

class CategoryController extends Controller
{

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
         $parentCategories = Category::where('parent_id',1)->get();
         return view('welcome', compact('parentCategories'));
    }
}
?>

Категория. php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    protected $guarded = [];

    public function subcategory(){

        return $this->hasMany('App\Category', 'parent_id');

    }
}
?>

1 Ответ

1 голос
/ 19 июня 2020

Вы должны создать другое отношение в той же модели категории.

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

И получение родительской модели будет таким:

$subcategory->parent->title;
...