尝试几分钟后。我在routes.php文件中有这个
Route::get('home/bookappointment/{id?}', array('as' => 'bookappointment', 'uses' => 'FrontController@getBookAppointment'));
在我的控制器上,我有以下内容:
public function getBookAppointment($id)
{
// find all the services that are active for the especific franchise
$activeServices = Service::whereHas('franchise', function($q) {
$q->where('franchise_id', '=', $id);
})->get();
//var_dump($activeServices);die;
return View::make('frontend/bookappointment')
->with('services', $activeServices);
}
我一直收到这个错误。
我做错了什么?
答案 0 :(得分:11)
您无权访问匿名函数中的$id
。尝试
<?php
$activeServices = Service::whereHas('franchise', function($q) use($id) {
$q->where('franchise_id', '=', $id);
})->get();
请查看PHP文档以获取更多信息:http://www.php.net/manual/en/functions.anonymous.php
答案 1 :(得分:1)
路由文件中{id
之后的问号表示id是可选的。如果确实应该是可选的,则应在Controller中将其定义为可选。
采用以下示例:
class FrontController extends BaseController {
public function getBookAppointment($id = null)
{
if (!isset($id))
{
return Response::make('You did not pass any id');
}
return Response::make('You passed id ' . $id);
}
}
注意如何使用$id
参数= null
定义方法。这样您就可以允许可选参数。