我是laravel的新手,我需要在laravel中进行查询的帮助
我的自定义查询
$sql1="SELECT * FROM blogs
WHERE
('$title'='' OR title='$title')
AND
('$body'='' OR body='$body')";
我创建了一个laravel构建查询,但不知道如何在“ WHERE和放置括号”中放置“或”
$posts = Blog::where('title','LIKE',"%{$title}%")
->Where('body', 'LIKE',"%{$body}%")
->offset($start)
->limit($limit)
->orderBy($order,$dir)
->get();
答案 0 :(得分:0)
我认为or您要寻找的是什么,并且基于自定义查询,我认为您将需要=
而不是like
,除非您要这样做,我认为它类似于:
->where('title', '=', $title)
->orWhere('title', '=', '');
答案 1 :(得分:0)
只需使用orWhere()
$posts = Blog::where('title', $title)
->orWhere('title', $otherTitle)
->orderBy($order, $dir)
->get();
答案 2 :(得分:0)
希望这会给您一个想法:)
$posts = Blog::where(function ($query) use($title) {
$query->where('title', 'LIKE', "%{$title}%")
->orWhere('title', '=', '$title');
})
->orWhere(function ($query) use($body) {
$query->where('body', 'LIKE', "%{$body}%")
->orWhere('body', '=', '$body');
})
->offset($start)
->limit($limit)
->orderBy($order,$dir)
->get();
未测试...
答案 3 :(得分:0)
$posts = Blog::where(function($q) use($title){
$q->where('title','')->orWhere('title',$title);
})->where(function($q) use($body){
$q->where('body','')->orWhere('body',$body);
})->offset($start)
->limit($limit)
->orderBy($order,$dir)
->get();
答案 4 :(得分:0)
您的查询应类似于:
$result = Blog::where(function($query) use ($title, $body){
$query->where(
["title" => $title, "body"=>$body]
)->orWhere(
["title"=>"", "body"=>""]
);
})
->offset($start)
->limit($limit)
->orderBy($order,$dir)
->get();
答案 5 :(得分:0)
使用->orWhere()
代码。
注意:您还可以使用魔术方法
->whereAgeOrPhone(18, 123456789);
答案 6 :(得分:0)
使用orWhere()
$blogs= DB::table('Blog')
->where('title', 'LIKE', '%{$title}%')
->orWhere('body','LIKE', '%{$body}%')
->offset($start)
->limit($limit)
->orderBy($order,$dir)
->get();
有关更多查询,您可以visit here