[英]How to pass foreach inside laravel DB::select query
我想遍歷 function processNeedle 中分解的單詞列表。 這適用於普通的 php 但不適用於 laravel。
$query = $request->input('query');
$trim = new SearchTrim();
$words = $trim->ProcessNeedle($query);
$concat = "CONCAT(";
$concat.="title,";
$concat.="'')";
$sql =DB::select("SELECT DISTINCT id,title,code,abstract FROM projects WHERE 0 ";
foreach ($words as $word) $sql.=" OR $concat LIKE '%$word%'";
$sql.=" ORDER BY id DESC";
我的查詢 function 在 php 中就像這樣
SQL query: SELECT DISTINCT id,title,code FROM projects WHERE 0 OR CONCAT(title,'') LIKE '%intranet%' OR CONCAT(title,'') LIKE '%mailing%' ORDER BY id DESC;
我如何在 Laravel 中實現這一點請幫助
試試這個例子。 我希望它對你有幫助。
在 laravel DB::select 查詢中傳遞 foreach
$items = ['condition1', 'condition2', 'condition3']; $results = App\Model::where(function ($query) use ($items) { foreach($items as $item) { $query->orWhere('dbfield', 'LIKE', "%$item%"); } }) ->get(); dd($results);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.