正在努力找出如何最好地完成我在简单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);
但我得到了未定义的常量错误。
有什么帮助吗?
基本上,我可以从快速查看代码中看到两件事:
- 设置要传递给视图
build_ud
的数组时的拼写错误我认为应该是build_id
- 您正在为视图中的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'));
});