请帮助改进要编译的数据[关闭]

问题描述 投票:-6回答:1

我的表格数据如下:

在我的模型中:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    protected $table = 'categories';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'parent_id', 'name', 'url', 'description', 'sort_order',
    ];

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

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

    public function getParentsAttribute()
    {
        $parents = collect([]);

        $parent = $this->parent;

        while (!is_null($parent)) {
            $parents->push($parent);
            $parent = $parent->parent;
        }

        return $parents->implode('name', ' > ');
    }
}

在我的控制器中:

<?php

namespace App\Http\Controllers;

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

class CategoryController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function listCategory()
    {
        $categories = Category::orderBy('sort_order')->get();
        // dd($categories);

        return view('catalog.category.list', ['categories' => $categories]);
    }
}

但我无法达到预期。

php laravel laravel-5
1个回答
-1
投票

我在我的模型中将$parents->push($parent);更改为$parents->prepend($parent);并解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.