Laravel - 嵌套uri获得父母的父母(等等)

时间:2014-05-15 12:28:56

标签: php laravel

我正在尝试使用嵌套子项创建一个uri(使用laravel框架)。

我的问题是我当前的代码,我只检索孩子的上述父母。而不是父母之上的父母(如果存在)等等.....

(我的数据库表有一个列'parent',其中包含上面父项的id)

有人可以帮我解决这个问题吗?

我的代码:

        $pageRoutes = array();
        foreach ($pages as $page) {
            $pageRoutes[] = self::PageRoute($page->id, $page->parent, $page->uri, $searchTerm);
        }

我打电话的功能:

    public function PageRoute($pageId, $parent, $prevUri = null, $searchTerm = false)
    {
        if (isset($parent) && $parent == null)
            $pages = DB::table('tblpages')
                ->select('tblpages.id','tblpages.uri')
                ->whereNull('tblpages.parent')
                ->where('tblpages.is_active', '=', true)
                ->get();
        else
            $pages = DB::table('tblpages')
                ->select('tblpages.id', 'tblpages.uri', 'tblpages.parent')
                ->where('tblpages.parent', '=', $pageId)
                ->where('tblpages.name', 'LIKE', $searchTerm)
                ->where('tblpages.is_active', '=', true)
                ->get();

        $path = array();

        foreach ($pages as $page)
        {
            if ($page->uri != '/')
                $page->uri = $prevUri.'/'.$page->uri;

            $path[$page->id] = $page;

            $path = self::PageRoute($page->id, $page->uri, $prevUri) + $path;
        }

        return $path;
    }

提前谢谢!!

1 个答案:

答案 0 :(得分:1)

您有什么理由可以使用Request::segement()吗?

http://example.com/first/second/third

Request::segment(1) // "first"
Request::segment(2) // "second"
Request::segment(3) // "third"