دسته بندی لاراول به صورت تو در تو

- 2 هفته پیش
توسط امیر اردکانی آپدیت شد
امیر اردکانی ( 3701 تجربه )
2 هفته پیش

سلام
من میخوام تو یک جدول لیست دسته بندی ها رو نشون بدم با استفاده از parent_id تو نشون دادن مشکلی نیست فقط میخوام اسم دسته بندی ها به این صورت باشه :

شماره یک
-- شماره دو
--- شماره سه

تو حالت اول که -- هست نشون داده میشه ولی از اونجا به بعد رو چطور باید نشون بدم؟ اینم کد ها

Controller

    public function index()
    {
        $categories = Category::with('children')->whereNull('parent_id')->get();

        return view('dashboard.categories.all' , compact('categories'));
    }

View

<tr>
    <td>
        <a href="#" class="tx-14 tx-medium d-block">{{ $category->parent_id ? ' -- ' . $category->name : $category->name }}</a>
    </td>
    <td class="valign-middle">{{$category->slug}}</td>
</tr>

@if ($category->children->count() > 0)
    @foreach($category->children as $child)
        @include('dashboard.categories.partials._category', ['category' => $child])
    @endforeach
@endif
بهترین پاسخ انتخاب شده توسط امیر اردکانی
امیر اردکانی
2 هفته پیش

سلام
مشکل حل شد , راه حل رو اینجا میذارم تا اگه کسی به مشکل مشابه خورد حل شه براش :
all.blade.php

<tbody>
@foreach($categories as $category)
    <tr>
        <td>
            <a href="#" class="tx-14 tx-medium d-block">{{ $category->name }}</a>
        </td>
        <td class="valign-middle">{{$category->slug}}</td>
    </tr>
    @if(isset($category->children))
        @include('dashboard.categories.sub_category_list', [
            'children' => $category->children,
            'dash' => '__'
        ])
    @endif
@endforeach
</tbody>

sub_category_list.blade.php

@foreach($children as $parent)
        <tr>
            <td><a href="#" class="tx-14 tx-medium d-block">{{ $dash.$parent->name }}</a></td>
            <td class="valign-middle">{{$category->slug}}</td>
        </tr>
        @if(isset($parent->children))
            @include('dashboard.categories.sub_category_list', [
                'children' => $parent->children,
                'dash' => $dash.'__'
            ])
        @endif
@endforeach
sajjad ( 7001 تجربه )
2 هفته پیش
امیر اردکانی ( 3701 تجربه )
2 هفته پیش

نه متوجه منظور من نشدید , من دارم لیست دسته بندی رو به همراه زیر دسته ها نشون میدم , فقط میخوام زیر دسته ها به ترتیب هر چه عمقشون بیشتر میشه کنار اسمشون -- اضافه شه به این صورت :

category 1
--subcategory 1
--- subcategory 1-1 
caregory 2
امیر اردکانی ( 3701 تجربه )
2 هفته پیش

سلام
مشکل حل شد , راه حل رو اینجا میذارم تا اگه کسی به مشکل مشابه خورد حل شه براش :
all.blade.php

<tbody>
@foreach($categories as $category)
    <tr>
        <td>
            <a href="#" class="tx-14 tx-medium d-block">{{ $category->name }}</a>
        </td>
        <td class="valign-middle">{{$category->slug}}</td>
    </tr>
    @if(isset($category->children))
        @include('dashboard.categories.sub_category_list', [
            'children' => $category->children,
            'dash' => '__'
        ])
    @endif
@endforeach
</tbody>

sub_category_list.blade.php

@foreach($children as $parent)
        <tr>
            <td><a href="#" class="tx-14 tx-medium d-block">{{ $dash.$parent->name }}</a></td>
            <td class="valign-middle">{{$category->slug}}</td>
        </tr>
        @if(isset($parent->children))
            @include('dashboard.categories.sub_category_list', [
                'children' => $parent->children,
                'dash' => $dash.'__'
            ])
        @endif
@endforeach
برای ارسال پاسخ باید وارد سایت شوید