Php Laravel 5.1:查询生成器不可读的参数或值

Php Laravel 5.1:查询生成器不可读的参数或值,php,eloquent,laravel-5.1,query-builder,Php,Eloquent,Laravel 5.1,Query Builder,这是我的route.php Route::get('tempitems/{tempId}/add/{q?}', ['uses' => 'ItemTemplateController@addItems', 'as' => 'tempitems.add']); 这是addItems方法 public function addItems(Request $request, $tempId) { echo ($tempId) // 1 st echo $temp = DB::tab

这是我的route.php

Route::get('tempitems/{tempId}/add/{q?}', 
['uses' => 'ItemTemplateController@addItems', 'as' => 'tempitems.add']);
这是
addItems
方法

public function addItems(Request $request, $tempId)
{
 echo ($tempId) // 1 st echo

 $temp = DB::table('auto_items')
            ->join('items', 'auto_items.item_id', '=', 'items.id')
            ->select(
                'items.name',
                'auto_items.qty'
                )
            ->where('auto_items.template_id', '=' , $tempId)
            ->tosql();

  dd($temp);

  echo $tempId; // 2nd echo

  return view('template_items.add_items', [
      'active'    => $this->active,
      'items'     => $items,
      'template'  => $template,
      'page'      => $page,
      'success'   => $success,
      'tempItems' => $tempItems
    ]);  
}
当我访问
localhost:8000/tempitems/1/add时,查询生成器无法读取
$tempId

1st echo => return 1
dd return => 
"select `items`.`name`, `auto_items`.`qty` from `auto_items` inner join `items` on 
`auto_items`.`item_id` = `items`.`id` where `auto_items`.`template_id` = ?"

2nd echo returned 1
我知道QueryBuilder使用get()返回行,因为它返回了零数组/[];这就是为什么我要使用
toSql()
。但是,
$tempId
不能被QueryBuilder读取

编辑:在编辑之前,我正在使用

->where('auto_items.template_id', '=' , 1)
上述代码仍返回“?”

->where('auto_items.template_id', '=' , $tempId)

这也是返回的“?”

如果您想确保插入的变量是否已处理到查询中,最好使用
DB::getQueryLog()
,它仍然在查询中显示
,但在
绑定中显示变量

->where('auto_items.template_id', '=' , $tempId)
    DB::enableQueryLog();
    $temp = DB::table('tabel')
        ->where('id', '=' , 1)
        ->get();
    return json_encode(DB::getQueryLog());
样本结果:

    [{"query":"select * from `age` where `id` = ?","bindings":[1],"time":0.19}]

我真的看不出问题所在,您在查询中没有使用
$tempId
,并且
$tempId
通过函数具有相同的值。那么,问题出在哪里?@Jerodev hi感谢您的回复,问题是查询生成器返回$tempId作为“?”,但是回音在前后都正常工作perfect@kotkoth-什么?只是一个占位符,因为Laravel使用准备好的语句。这并不意味着在您的查询中使用了此值。非常感谢!我知道这一定是某种错误,毕竟是我的代码错误。