html ::链接到动态路由

时间:2014-12-02 12:18:15

标签: laravel laravel-4

我正在尝试在blade.php页面上输出用户列表。点击用户的ID可以转到个人资料页面。

以下是我的查看 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}', 'BrowseController@showProfile');

我希望我的视图页面在我的数据库中输出一堆汽车。点击car_id = i的汽车,应该为每个尊敬的car_id带我到http://localhost:8000/browse/i

我用html :: linkRoute采取了错误的方法吗?

在浏览器中输入http://localhost:8000/browse/i适用于任何i。因此,我的route和showProfile工作正常。

但是当我加载 browse.blade.php 时,我收到以下错误 enter image description here

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


修改

感谢msturdy的建议

改变     Route :: any('browse / {car_id}','BrowseController @ showProfile');

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

并将HTML路线更改为

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

错误消失了,但浏览页面上没有显示任何链接。

1 个答案:

答案 0 :(得分:0)

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

Route::any('browse/{car_id}', array('as' => 'browse', 'uses' => 'BrowseController@showProfile'));

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

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