我有一个查询。
$bid_check = Bidders::where([
'project_id' => $id,
'status' => 1,
'active' => 1,
])
->orWhere([
'project_id' => $id,
'status' => 2,
'active' => 1
])
->first();
print_r($bid_check);die;
当我不使用or编写它时,它没有显示任何结果,但是,当我编写or编写它时,它给了我数据库的第一列,这是错误的。 where和orWhere中的条件与数据库中的任何列都不匹配。因此,它应该返回空,但它正在返回数据库的第一列。为什么要返回值,有人遇到过同样的问题吗?
答案 0 :(得分:1)
尝试一下:
function status(response) {
if (response.status >= 200 && response.status < 300) {
return Promise.resolve(response)
} else {
return Promise.reject(new Error(response.statusText))
}
}
function json(response) {
return response.json()
}
fetch('https://apis.mapmyindia.com/advancedmaps/v1/+apikey+/autosuggest?q=delhi',{mode: 'no-cors'})
.then(status)
.then(json)
.then(function(data) {
console.log('Request succeeded with JSON response', data);
}).catch(function(error) {
console.log('Request failed', error);
});
答案 1 :(得分:1)
最好使用whereIn函数
Bidders::where(['project_id'=>$id,'active'=>1])
->whereIn('status', [1,2])
->first();
我认为orWhere
中的数组是作为or子句的列表而不是作为and子句的列表创建的,因此您将拥有or project_id = $id or active = 1 or status = 2
如果上述内容正确,则应执行以下操作
->orWhere(function($query) {
return $query->where([
'project_id' => $id,
'status' => 2,
'active' => 1
]);
});
答案 2 :(得分:0)
尝试以下代码。
>############################################################
># BUILDING CONTAINER IMAGES #
>############################################################
>Sending build context to Docker daemon 2.048kB
>Step 1/3 : FROM docker.io/hyperledger/fabric-orderer:x86_64-1.0.2
> ---> 6efd17e86e65
>
>Step 2/3 : RUN mkdir /orderer
> ---> Using cache
> ---> 765112c8f6ce
>
>Step 3/3 : COPY crypto /orderer/crypto
>
>COPY failed: stat /var/lib/docker/tmp/docker-builder056982429/crypto: no >such file or directory
>
>Pulling shop-ca (shop-ca:latest)...
>
>ERROR: pull access denied for shop-ca, repository does not exist or may >require 'docker login'
答案 3 :(得分:0)
您应该尝试以下操作:
$bid_check = Bidders::where('active', 1)
->where('project_id', $id)
->where(function ($query) {
$query->where('status', 1)->orWhere('status', 2);
})
->first();