Laravel 5.6。我如何在WHERE条件中使用变量?

时间:2018-06-17 13:18:02

标签: php laravel

我试着得到结果:

$return = \App\session_results::
        where([                    
        ['sessia', session_id()],
        ['search_key', $number] //number = 322
        ])->get();

此代码返回0行

当我使用

$return = \App\session_results::
    where([                    
    ['sessia', session_id()],
    ['search_key', '322']
    ])->get();

此代码返回良好结果。

如何通过变量获得结果?

5 个答案:

答案 0 :(得分:1)

尝试下面的代码,我只是在列名和您想要的值之间添加了一个运算符。

$return = \App\session_results::where([
   ['sessia', '=', session_id()],
   ['search_key', '=', $number]
])->get();  

答案 1 :(得分:0)

尝试这样做 -

$return = \App\session_results::where(function ($query) use ($number) {
    $query->where('sessia', '=', session_id());
    $query->where('search_key', '=', $number);
})->get();

答案 2 :(得分:0)

我的控制器功能使用2个输入变量:$ brand和$ number。

 public function Show(Request $request, $brand, $number) {
}

我有路线

Route::GET('/{number}/{brand}', [
'uses' => 'partsFinder@Show',
'as' => 'parts.show',
]);

我认为,$ number是{number},$ brand是{brand}。但是变量的顺序没有得到尊重。 #facepalm

答案 3 :(得分:0)

尝试将number投射为String,就像这样

$return = \App\session_results::
        where([                    
        ['sessia', session_id()],
        ['search_key', ''.$number.''] //number = 322
        ])->get();

答案 4 :(得分:-1)

将您的查询更改为

$return = \App\session_results::where(['sessia' => session_id(), 'search_key' => $number ])->get();

$return = \App\session_results::where('sessia', session_id())->where('search_key', $number)->get();