Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tạo menu điều hướng đa cấp theo hướng cơ sở dữ liệu bằng Laravel

Vì vậy, sau khi tìm kiếm nhiều hơn và đọc từ các nguồn khác nhau, đây là những gì tôi đã nghĩ ra và nó hoạt động tốt:

/app/models/Navigation.php

<?php

class Navigation extends Eloquent {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'navigation';

    public function parent() {

        return $this->hasOne('navigation', 'id', 'parent_id');

    }

    public function children() {

        return $this->hasMany('navigation', 'parent_id', 'id');

    }  

    public static function tree() {

        return static::with(implode('.', array_fill(0, 4, 'children')))->where('parent_id', '=', NULL)->get();

    }

}

/app/controllers/HomeController.php

<?php

class HomeController extends BaseController {

    protected $layout = "layouts.main";

    public function showWelcome()
    {

        $items = Navigation::tree();

        $this->layout->content = View::make('layouts.home.index')->withItems($items);

    }

}

/app/views/layouts/home/index.blade.php

<ul>
    @foreach($items as $item)
        <li>{{ $item->title }}
            @foreach($item['children'] as $child)
            <li>{{ $child->title }}</li>
            @endforeach
        </li>
    @endforeach
</ul>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tạo cơ sở dữ liệu với pdo trong php

  2. PHP / PDO:Các câu lệnh soạn sẵn không hoạt động khi tạo bảng?

  3. Lỗi MySQL 1093 - Không thể chỉ định bảng đích để cập nhật trong mệnh đề FROM

  4. Buộc InnoDB kiểm tra lại các khóa ngoại trên một bảng / bảng?

  5. Sự khác biệt giữa MySQL Server và MySQL Client là gì