在laravel视图中使用URL数据


Using URL data in laravel views

正在努力找出如何最好地完成我在简单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。

我现在想做的是从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);

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

有什么帮助吗?

基本上,我可以从快速查看代码中看到两件事:

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

$build=build::find(build_id);

应该是:

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

您的路线关闭应该如下所示:

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