Laravel 4:如何将div id传递给View :: make()

时间:2014-04-29 03:03:02

标签: php laravel laravel-4

这是我的代码:

routes.php文件

Route::get('menu', function()
{
    return View::make('display_food');
});

menu.blade.php

<script type="text/javascript">
function linkPage()
{
  location.href = "menu";
}
</script>

......
......

<button class="btn btn-default" onclick="linkPage()">Menu</button> 

我想将一个div id“#link_menu”传递给url,这样当它加载时,它会显示为“http://www.abc.com/food_cms/system/public/menu#link_menu”,这可以使页面跳转到我想要的部分。但是,我试过

Route::get('menu', function()
    {
        return View::make('display_food')->with('#link_menu');
    });

并且

Route::get('menu', function()
{
    return View::make('display_food',compact('#link_menu'));
});

这个

Route::get('menu', function()
{
    return View::make('display_food')->with(compact('#link_menu'));
});

但他们都没有工作。该网址仍显示在“http://www.abc.com/food_cms/system/public/menu”中,没有“#link_menu”。有任何想法吗?

2 个答案:

答案 0 :(得分:1)

您希望让location.href首先进入主播:

 window.location = "#anchor";

在您要跳转到的内容之前,有一个命名的锚标记,例如:

 <a id="anchor"></a><h1>my content</h1>

在您的视图中,您将需要与此类似的内容,因此您可以指定要从控制器/路由器中跳转到的锚点:

<head>
<title>This page will go straight to the anchor I specify...</title>
@if (isset($jump_to))
<script>
function window.onload() {
    window.location = "#{{$jump_to}}"
}
</script>
@endif
</head><body>
<p>lot's of content...</p>
<p>lot's of content...</p>
<p>lot's of content...</p>
[...]
<a id="anchor"></a><h1>my content</h1>
</body>

然后使用您的路线,指定具有特定$ jump_to变量的视图,该变量指定您将被投掷到的位置。

Route::get('menu/{id}', function($menu_id)
{
    return View::make('display_food')->with('jump_to' => $menu_id);
});

如果指定了$ jump_to,则会添加javascript,浏览器将跳转到您指定的锚标记。

答案 1 :(得分:0)

你有url

http://www.abc.com/food_cms/system/public/menu#link_menu

实际上,#之后的部分未提交给服务器,您需要使用如下的查询字符串传递:

http://www.abc.com/food_cms/system/public/menu?menuId=link_menu
//location.href = "menu?menuId=link_menu";

所以你可以使用:

$menuId = Inpput::get('menuId');

您也可以使用:

Route::get('menu/{id}', function($menu_id)
{
    return View::make('display_food', compact('menu_id'));
});

为了使其有效,您可以像这样构建url

http://www.abc.com/food_cms/system/public/menu/ink_menu
//location.href = "menu/link_menu";

view中,您可以将其$menu_id用作ink_menu,而#不包含{{1}},以便在使用之前将其连接起来。