ホームページ > バックエンド開発 > PHPチュートリアル > mysql优化 - php laravel5.1框架 城市 模型 无限极分类 循环写法

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

WBOY
リリース: 2016-06-06 20:31:04
オリジナル
1137 人が閲覧しました

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

数据表如下

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

id
pid
name

这三个字段

通过 laravel 模型

<code>/**
     * 资源列表数据模型仓库
     */
    public function index()
    {
        $city = $this->city->all();
        return $city;
    }
</code>
ログイン後にコピー
ログイン後にコピー
<code>    public function index(Request $request)
    {
        $cities = $this->city->index();
        $data['cities'] = $cities;
        return view('admin.city.index',$data);
    }
</code>
ログイン後にコピー
ログイン後にコピー

在视图模块循环

<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>
ログイン後にコピー
ログイン後にコピー

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

改怎么处理

<code>$city = $this->city->all()
</code>
ログイン後にコピー
ログイン後にコピー

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

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

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

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

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

有大神指导一下可以吗

回复内容:

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

数据表如下

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

id
pid
name

这三个字段

通过 laravel 模型

<code>/**
     * 资源列表数据模型仓库
     */
    public function index()
    {
        $city = $this->city->all();
        return $city;
    }
</code>
ログイン後にコピー
ログイン後にコピー
<code>    public function index(Request $request)
    {
        $cities = $this->city->index();
        $data['cities'] = $cities;
        return view('admin.city.index',$data);
    }
</code>
ログイン後にコピー
ログイン後にコピー

在视图模块循环

<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>
ログイン後にコピー
ログイン後にコピー

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

改怎么处理

<code>$city = $this->city->all()
</code>
ログイン後にコピー
ログイン後にコピー

得到的数据 可以输出 上级城市的名称呢?现在只能输出上级的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>
ログイン後にコピー

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

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート