2014-10-17 28 views
0

努力想出如何最好地做我通常在簡單的PHP中。在laravel視圖中使用URL數據

我有以下網址:

/viewbuild/2 

目的是viewbuild是視圖和圖2是數據庫行的id。

通常它只會是:

$id = $_GET['id']; 

,但無法弄清楚,以做正確使用laravel。

這是我的路線:

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

而且在我看來,我已經做了如:

<?php 
    $build = Build::find(20); 
?> 

{{ $build->id }} 

這正確搜索建立表與2 id的行,然後顯示其ID。

我現在想要做的是從URL中拉出'20'值。

我曾嘗試:

Route::get('/viewbuild/{build_id}', function($build_id = null) 
{ 
    $data = array(
    'build_id' => $build_id, 
); 
    return View::make('viewbuild', $data); 
}); 

,然後在我的看法:

$build = Build::find(build_id); 

,但我得到未定義的常量錯誤。

對此有何幫助?

+0

不知道,但好像你對陣列通過查看一個錯字。 「build_ud」for build_id – engvrdr 2014-10-17 22:23:12

+0

是的,注意到了,但修復了它,沒有運氣。想一想我錯了。試圖將URL傳遞給控制器​​,然後進行視圖 – Lovelock 2014-10-17 22:24:40

+0

順便說一句,而不是在控制器中獲取構建對象,並傳遞對象來查看將是更好的做法 – engvrdr 2014-10-17 22:25:42

回答

0

基本上我可以看到兩件事情從快看你的代碼:

  1. 一個錯字設置陣列時要傳遞到視圖build_ud應該build_id我相信
  2. 你引用一個常數build_id(沒有$符號)在您的視圖中,而不是傳遞給視圖的傳遞變量。即:

$ build = Build :: find(build_id);

應該是:

$構建=構建::發現($ build_id);

+0

感謝您的答覆,已經找到了這樣做的正確方法和解決了我接下來的許多問題。感謝雖然:) – Lovelock 2014-10-17 22:26:30

0

您的路線閉合應該是這樣的:

Route::get('/viewbuild/{build_id?}', function($build_id = null) 
{ 
    // Query the database here instead of inside the view 
    $build = Build::find($build_id); 

    return View::make('viewbuild', compact('build')); 
}); 
+0

謝謝,但一個問題,該頁面正在處理一個文件夾。所以我的CSS等現在鏈接到viewbuild/css/main.css。任何想法如何解決這個問題? – Lovelock 2014-10-17 22:34:08

+0

確保您的網址以'/'開頭,以便它們相對於根路徑。所以你的css鏈接應該有'href =「/ path/to/file.css」'(注意前面的'/') – Bogdan 2014-10-17 22:36:14

+0

否定的,viewbuild頁面與'about'和about頁面處於同一層它工作正常。但我想因爲url是viewbuild/id它認爲viewbuild是一個目錄? – Lovelock 2014-10-17 22:39:39

相關問題