2014-12-02 272 views
1

我想输出我的blade.php页面上的用户列表。点击用户的ID应该带你到一个个人资料页面。html ::链接到动态路由

这里是我的查看browse.blade.php文件

<?php 
$cars = DB::table('cars')->get(); 
foreach ($cars as $car) 
{ 
    echo "<table >" ; 
    echo "<tr>"; 
    HTML::linkRoute('browse/'.$car->car_id, 'Car ID: '.$car->car_id); 
    echo "<td>Make: $car->make <br/ ></td>" ; 
    echo "</tr>"; 
    echo "</table>"; 
} 
?> 

控制器

public function browse() 
{ 
    return View::make('car/browse'); 
} 

public function showProfile($car_id) 
{ 
    return View::make('car/profile')->with('car_id', $car_id); 
} 

路线

Route::any('browse/{car_id}', '[email protected]'); 

我希望我的浏览页面能够在我的数据库中输出一堆汽车。点击car_id = i的汽车应该让我的每个尊重car_id http://localhost:8000/browse/i

我用错误的方法与我的html :: linkRoute?

键入http://localhost:8000/browse/i进入浏览器适用于任何我。因此,我的路线和showProfile工作正常。

然而,当我加载browse.blade.php我收到以下错误 enter image description here

10018是我的第一辆车ID。为什么我的Route::any('browse/{car_id}不工作?


编辑:

由于msturdy为建议

改变 路线::任何( '浏览/ {car_id}', 'BrowseController @ showProfile');

Route::any('browse/{car_id}', [ 
    'as' => 'profile', 
    'uses' => '[email protected]']); 

和改变HTML路由

HTML::linkRoute('profile', 'Car ID: '.$car->car_id, array($car->car_id)); 

的错误都走了,但没有链接显示浏览页面上。

回答

0

首先,更新您的路线,使其具有'name' you can use elsewhere in your application。我们叫它在这个例子中“浏览”:

Route::any('browse/{car_id}', array('as' => 'browse', 'uses' => '[email protected]')); 

然后HTML::linkRoute()借此路由名称,链接的标题和参数作为独立参数:

HTML::linkRoute('browse', "Car ID: " . $car->car_id, array($car->car_id)); 
+0

这消除了所有的错误,但出于某种原因,browse.blade.php不会显示'Car ID:'。$ car-> car_id。它似乎在跳过它。我需要将它放在超链接中吗? – ryank 2014-12-02 12:36:33

+0

仍然没有运气。我觉得我们非常接近。 – ryank 2014-12-02 12:40:33

+0

只需添加一个回声。我没有意识到这个容易犯的错误。非常感谢你的帮助。出于好奇,我应该总是给路由分配“名称”吗?如果是这样,为什么? – ryank 2014-12-02 12:46:21