Php Laravel:在雄辩的查询中插入控制器发送的变量(99.5%的代码已完成)

Php Laravel:在雄辩的查询中插入控制器发送的变量(99.5%的代码已完成),php,laravel,eloquent,Php,Laravel,Eloquent,我过去一直在做的事情,同样是使用Codeigniter,现在却在犹豫。需要在SQL查询PDO Eloquent样式中插入变量,但它抱怨找不到列,因此为了让它工作,我对它进行了硬编码,它确实返回了正确的结果,但当然,不能使用硬编码。这就是问题所在,将变量放在数字7的正确位置的语法是什么。在控制器上,我从Ajax转发中得到的信息是: $data['input'] 这就是我想发送给模型的内容 $hospital['input']=使用新治疗->发送数据7;但是我硬编码了一个7 这是一个雄辩的问题:

我过去一直在做的事情,同样是使用Codeigniter,现在却在犹豫。需要在SQL查询PDO Eloquent样式中插入变量,但它抱怨找不到列,因此为了让它工作,我对它进行了硬编码,它确实返回了正确的结果,但当然,不能使用硬编码。这就是问题所在,将变量放在数字7的正确位置的语法是什么。在控制器上,我从Ajax转发中得到的信息是:

$data['input'] 
这就是我想发送给模型的内容

$hospital['input']=使用新治疗->发送数据7;但是我硬编码了一个7

这是一个雄辩的问题:

<?php
class Treatment extends Eloquent {



    public function sendData(){

     $resultado = DB::table('treatments')
    ->whereIn('departamento', function($query)
    {
        $query->select(DB::raw('spec_description'))
              ->from('specialties')
              ->whereRaw('id_specialty = 7');
    })
    ->get();

        return $resultado;

    }


}
谢谢

您可能需要使用$id


它还可能告诉您找不到列,因为您的specialties表中没有列id\u specialties,但可能是id。但是,既然您说它与硬编码的7一起工作,我就把它留在了答案中。

我不是100%确定这一点,但是闭包中没有返回数据,所以where似乎没有获得它需要的数据。您可以尝试从闭包返回查询数据,希望这能解决您的问题。当我硬编码并执行它时,看看Firebug响应,我可以看到它从数据库中得到了正确的结果,所以这不是问题。问题是在控制器上放置变量的语法是什么,在控制器上可以看到数字7,在模型上sendData的参数是什么,最后在查询中输入什么,数字7在哪里。您好,谢谢您的输入。我可以看到您在模型页面中输入id作为参数,但不包括$id。我确实有一个id_专业作为列的名称,但我感兴趣的是您指出的新奇之处,即引入id而不是$id。您的意思是我应该在其中输入列的名称吗?关于控制器,我需要输入什么作为参数来发送?如果我将数据作为$data['input']
public function sendData(id)
{
    $resultado = DB::table('treatments')->whereIn('departamento', function($query) use ($id)
    {
        $query->select(DB::raw('spec_description'))->from('specialties')->where('id_specialty', $id);
    })->get();

    return $resultado;
}