在laravel视图中使用URL数据

时间:2014-10-17 22:16:53

标签: php laravel laravel-4 laravel-routing

努力弄清楚如何最好地完成我在简单的PHP中通常会做的事情。

我有以下网址:

/viewbuild/2

目标是viewbuild是视图,2是数据库行的id。

通常它只是:

$id = $_GET['id'];

但是无法通过laravel正确地做到这一点。

这是我的路线:

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

根据我的观点,我做过例如:

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

{{ $build->id }}

这会在构建表中正确搜索id为2的行,然后显示其id。

我现在要做的是拉动&#39; 20&#39;来自网址的值。

我试过了:

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);

但是我得到了未定义的常量错误。

对此有何帮助?

2 个答案:

答案 0 :(得分:0)

基本上我可以通过快速查看代码看到两件事:

  1. 设置要传递给视图build_ud的数组时的拼写错误应该是build_id我认为
  2. 您正在视图中引用build_id(无$符号)的常量,而不是传递给视图的传递变量。即:
  3.   

    $ build = Build :: find(build_id);

    应该是:

      

    $ build = Build :: find($ build_id);

答案 1 :(得分: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'));
});