使用Elequont模型在Laravel中基于父级到达多级获取子子级

时间:2016-02-16 08:55:26

标签: php laravel-5 laravel-5.2

我的产品类别为多级产品。我使用了elequont模型来获得该类别的第一级。但我无法获得产品的子子类别。以下是我的模型的样子:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Services extends Model
{
    //
    protected $fillable = [
        'servicename', 'serviceslug', 'service_id','priceinr', 'priceusd','details', 'footertext','user_id'
    ];

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

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

表结构如下所示: enter image description here

这就是我的控制器的样子:

public function show($id)
    {
        $services = Services::where('service_id', 0)->with('children')->get();
        //return $services;

        return view('services.edit')->with('services', $services);
    }

并且考虑到它的正常下拉。

<select class="form-control" name="service_id">
                                <option value="">Select...</option>
                                @foreach($services as $service)
                                @if($service->service_id == 0)
                                <option value="{{$service->id}}">{{$service->servicename}}</option>
                                @else
                                <option value="{{$service->id}}">&nbsp;&nbsp;&nbsp;{{$service->servicename}}</option>
                                @endif
                            @endforeach
                            </select>

我能够得到这个:

Cloths
   Mens
      Shirt    //Not able to get shirt and below level
      trousers    //Not able to get trousers and below level
   Womens
      Tshirt   //Not able to get Tshirt and below level
      Jeans    //Not able to get Jeans and below level

任何解决方案都会对您有所帮助。我想获取下拉列表中可能看起来嵌套的值。

谢谢! (提前)

0 个答案:

没有答案