2014-12-02 278 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