Heim > Backend-Entwicklung > PHP-Tutorial > mysql优化 - php laravel5.1框架 城市 模型 无限极分类 循环写法

mysql优化 - php laravel5.1框架 城市 模型 无限极分类 循环写法

WBOY
Freigeben: 2016-06-06 20:31:04
Original
1137 Leute haben es durchsucht

有这么一个需求 类似与城市的三级分类

数据表如下

mysql优化 - php   laravel5.1框架 城市 模型 无限极分类 循环写法

id
pid
name

这三个字段

通过 laravel 模型

<code>/**
     * 资源列表数据模型仓库
     */
    public function index()
    {
        $city = $this->city->all();
        return $city;
    }
</code>
Nach dem Login kopieren
Nach dem Login kopieren
<code>    public function index(Request $request)
    {
        $cities = $this->city->index();
        $data['cities'] = $cities;
        return view('admin.city.index',$data);
    }
</code>
Nach dem Login kopieren
Nach dem Login kopieren

在视图模块循环

<code>@foreach($cities as $key => $li)
    <tr>
        <td class="text-gray">{{ $li -> updated_at }}</td>
        <td class="text-aqua">{{ $li -> name }}</td>
        <td class="text-light-blue">{{ $li -> pid }}</td>
        <td class="text-green">{{ $li -> tag }}</td>
        <td> <a href="%7B%7B%20route('admin.city.index')%20%7D%7D/%7B%7B%20%24li->id%20%7D%7D/edit"><i class="fa fa-fw fa-pencil" title="修改"></i></a>  </td>
    </tr>
@endforeach
</code>
Nach dem Login kopieren
Nach dem Login kopieren

mysql优化 - php   laravel5.1框架 城市 模型 无限极分类 循环写法

改怎么处理

<code>$city = $this->city->all()
</code>
Nach dem Login kopieren
Nach dem Login kopieren

得到的数据 可以输出 上级城市的名称呢?现在只能输出上级的id;
如何有简单的 优雅的 输出 上级城市名称呢;

另外 如果是 无限极分类 改怎么写循环呢

另外 如果是 无限极分类 改怎么写循环呢

另外 如果是 无限极分类 改怎么写循环呢

重点说三遍 !O(∩_∩)O哈哈~ ;

有大神指导一下可以吗

回复内容:

有这么一个需求 类似与城市的三级分类

数据表如下

mysql优化 - php   laravel5.1框架 城市 模型 无限极分类 循环写法

id
pid
name

这三个字段

通过 laravel 模型

<code>/**
     * 资源列表数据模型仓库
     */
    public function index()
    {
        $city = $this->city->all();
        return $city;
    }
</code>
Nach dem Login kopieren
Nach dem Login kopieren
<code>    public function index(Request $request)
    {
        $cities = $this->city->index();
        $data['cities'] = $cities;
        return view('admin.city.index',$data);
    }
</code>
Nach dem Login kopieren
Nach dem Login kopieren

在视图模块循环

<code>@foreach($cities as $key => $li)
    <tr>
        <td class="text-gray">{{ $li -> updated_at }}</td>
        <td class="text-aqua">{{ $li -> name }}</td>
        <td class="text-light-blue">{{ $li -> pid }}</td>
        <td class="text-green">{{ $li -> tag }}</td>
        <td> <a href="%7B%7B%20route('admin.city.index')%20%7D%7D/%7B%7B%20%24li->id%20%7D%7D/edit"><i class="fa fa-fw fa-pencil" title="修改"></i></a>  </td>
    </tr>
@endforeach
</code>
Nach dem Login kopieren
Nach dem Login kopieren

mysql优化 - php   laravel5.1框架 城市 模型 无限极分类 循环写法

改怎么处理

<code>$city = $this->city->all()
</code>
Nach dem Login kopieren
Nach dem Login kopieren

得到的数据 可以输出 上级城市的名称呢?现在只能输出上级的id;
如何有简单的 优雅的 输出 上级城市名称呢;

另外 如果是 无限极分类 改怎么写循环呢

另外 如果是 无限极分类 改怎么写循环呢

另外 如果是 无限极分类 改怎么写循环呢

重点说三遍 !O(∩_∩)O哈哈~ ;

有大神指导一下可以吗

自己映射自己

http://laravel.com/docs/4.2/eloquent#relationships

<code>class City extends Eloquent {

    public function parentCity()
    {
        return $this->belongsTo('City', 'pid', 'id');
    }

    public function childrenCities()
    {
        return $this->hasMany('City', 'pid', 'id');
    }
}
</code>
Nach dem Login kopieren

楼主,你这个用关系 怎么实现把 pid 转换成 pid 对应的 name 的呢 ,不适用 循环查询数据

除了楼上那些,我建议看看使用ztree 或其他类似JS tree组件来搞,个人觉得直观方便。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage