我无法使用laravel显示搜索结果。以下是路线,控制器和视图的代码:
路线:
Route::resource('search', 'SearchController');
控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Order;
use Redirect;
use Auth;
use DB;
class SearchController extends Controller
{
public function index(Request $request)
{
$order = Order::all();
return view(search.index', compact(search));
}
public function search(Request $request)
{
$search = $request->search;
$order = DB::table('order')
->where('custName','like',"%".$search."%");
return view('search.index',compact('search'));
}
}
视图
<form action="search" method="GET">
<input type="text" name="custName" class="form-control" <br>
<button type="submit" class="btn btn-primary">SEARCH</button>
</div>
</div>
<table class="table table-bordered" width="500">
<tr>
<td><font color="white">RESULT :</font></td>
</tr>
@foreach($order as $order)
<tr>
<td>{{ $order->custName }}</td>
<td>{{ $order->orderStatus }}</td>
</tr>
@endforeach
</table>
目录位置
c:/xampp/htdocs/web/resources/views/search/index.blade.php
显示错误
Undefined variable: order (View: c:\xampp\htdocs\web\resources\views\search\index.blade.php)
上面是我在数据库中搜索记录的代码。但是结果总是不确定的变量。
如何使用上面的代码显示搜索结果。谢谢
答案 0 :(得分:1)
您共享的代码存在一些问题,我尝试告诉我所看到的。
Route :: resource中存在拼写错误,您在其中编码了 seearch
对于搜索方法,您提供的路线未在任何地方使用它。您可以在this question
答案 1 :(得分:0)
在Controller搜索方法中,将搜索结果分配给 $ orders
$orders = DB::table('order')
->where('custName','like',"%".$search."%");
然后将其发送到视图:
return view('search.index',compact('orders'));
并在视图中执行以下操作:
@foreach($orders as $order)
<tr>
<td>{{ $order->custName }}</td>
<td>{{ $order->orderStatus }}</td>
</tr>
@endforeach
它将解决您的问题。
答案 2 :(得分:0)
例如我有记录:
该代码显示从1号到7号的所有记录。 但是现在它解决了,我在index()部分的控制器中修复了代码,如下所示
public function index()
{
return view('search.index', compact('order'));
}
public function search(Request $request)
{
$search = $request->search;
$order = DB::table('order')->where('custName', 'like', "%".$search."%")->get();
return view('search.result', compact('order'));
}