我正在嘗試執行我的功能以在搜索文本區域中查找每個添加的關鍵字。
這是功能
$search = $request->input('search');
foreach(explode("\r\n", $search) as $lines) {
$resource = Http::get("http://localhost:4000/keys/$lines");
}
return view('search', compact('resource'));
和表格
<form id="form-buscar" action="{{ route('search') }}" method="POST">
{{ csrf_field() }}
<div class="form-group">
<textarea class="form-control" type="textarea" name="search" required></textarea>
<div class="submit">
<button class="btn btn-success pull-right" type="submit">Search</button>
</div>
</div>
</form>
文本區域的簡單輸入
keyword
keyword1
keyword2
目前,它僅獲取/顯示最后一個詞的結果。我的錯誤是什么?
uj5u.com熱心網友回復:
$resourceforeach 內部僅針對每次迭代運行(每次迭代不知道任何其他迭代),您想要查看所有迭代,因此您需要將它們附加到 foreach 內部,然后在 foreach 外部運行最終的完整串列。你可能會使用一個array_walk()函式。
所以; 構建一個結果陣列,然后回圈Http::get請求陣列中的每個值,然后將該結果作為所有子陣列值的總和回傳:
例子
$search = $request->input('search');
// This replaces the foreach loop
$lines = explode(PHP_EOL, $search);
array_walk($lines, function(&$value){
$value = Http::get("http://localhost:4000/keys/".$value);
});
return view('search', ($lines?:[]));
這會將回傳Http::get結果的自定義匿名函式應用于陣列中的每個元素。
注意:正如 RiggsFolly 所指出的,\r\n對于 PHP 行結尾來說并不是很通用,因此使用 PHP_EOL 是一種系統感知/安全的解決方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/534848.html
標籤:PHP拉维
