Laravel 的新手,为什么 $car 没有传递到我的搜索视图?
New to Laravel, why is $car not getting passed to my search view?
当我在搜索页面中添加 dd($car) 时,它显示如下:
Image
路线:
Route::get('/search', [RepairController::class, 'search']);
控制器:
public function search(Car $car, Repair $repairs)
{
$repairs_new = DB::table('repairs')->where('car_id', '=', $car->id)->get();
return view('cars.search',
[ 'car' => $car,
'repairs_new' => $repairs_new]
);
}
如果您需要任何其他信息来解决此问题,请在评论中告诉我,谢谢。
编辑(更多代码 + 更改):
搜索表单:
<form class="form-inline" type="get" action="/search/{car}">
<input
class="form-control shadow appearance-none border rounded w-100 py-2 px-3 mb-2 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"
type="search" name="query" placeholder="Search repairs">
<button
class="w-32 bg-blue-500 hover:bg-blue-700 text-white font-bold p-2 m-2 rounded focus:outline-none focus:shadow-outline"
type="submit">Search</button>
</form>
路线:
Route::get('/search/{car}', [RepairController::class, 'search']);
控制器中的搜索功能:
public function search(Car $car, Repair $repairs)
{
$search_text = $_GET['query'];
// $repairs = $car->repairs()->get();
// $repairs_new = $repairs->where($repairs->car_id, '=', $car->id)->get();
$repairs_new = $repairs->where('repair', 'LIKE', '%' . $search_text . '%')->where('car_id', 'LIKE', $car->id)->get();
// $repairs_new = DB::table('repairs')->where('car_id', '=', $car->id)->get();
return view('cars.search',
[ 'car' => $car,
'repairs_new' => $repairs_new]
);
}
根据 documentation,您需要指定如何在路由中检索信息。
Route::get('/search/{car:id?}/{repairs:id?}', [RepairController::class, 'search']);
其中 :id
是用于执行查找的数据库列。因此,在这种情况下,您将访问 /search/1/1
,其中 1
是 Car
和 Repairs
记录的 id
。
Note: ?
at the end of the slug is optional here.
不完全确定为什么要使用 DB
门面,而您可以在此处轻松地 use relationships 并执行像 $car->repairs()
这样简单的操作来获得维修并简单地传入Car
模型到搜索。
当我在搜索页面中添加 dd($car) 时,它显示如下: Image
路线:
Route::get('/search', [RepairController::class, 'search']);
控制器:
public function search(Car $car, Repair $repairs)
{
$repairs_new = DB::table('repairs')->where('car_id', '=', $car->id)->get();
return view('cars.search',
[ 'car' => $car,
'repairs_new' => $repairs_new]
);
}
如果您需要任何其他信息来解决此问题,请在评论中告诉我,谢谢。
编辑(更多代码 + 更改):
搜索表单:
<form class="form-inline" type="get" action="/search/{car}">
<input
class="form-control shadow appearance-none border rounded w-100 py-2 px-3 mb-2 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"
type="search" name="query" placeholder="Search repairs">
<button
class="w-32 bg-blue-500 hover:bg-blue-700 text-white font-bold p-2 m-2 rounded focus:outline-none focus:shadow-outline"
type="submit">Search</button>
</form>
路线:
Route::get('/search/{car}', [RepairController::class, 'search']);
控制器中的搜索功能:
public function search(Car $car, Repair $repairs)
{
$search_text = $_GET['query'];
// $repairs = $car->repairs()->get();
// $repairs_new = $repairs->where($repairs->car_id, '=', $car->id)->get();
$repairs_new = $repairs->where('repair', 'LIKE', '%' . $search_text . '%')->where('car_id', 'LIKE', $car->id)->get();
// $repairs_new = DB::table('repairs')->where('car_id', '=', $car->id)->get();
return view('cars.search',
[ 'car' => $car,
'repairs_new' => $repairs_new]
);
}
根据 documentation,您需要指定如何在路由中检索信息。
Route::get('/search/{car:id?}/{repairs:id?}', [RepairController::class, 'search']);
其中 :id
是用于执行查找的数据库列。因此,在这种情况下,您将访问 /search/1/1
,其中 1
是 Car
和 Repairs
记录的 id
。
Note:
?
at the end of the slug is optional here.
不完全确定为什么要使用 DB
门面,而您可以在此处轻松地 use relationships 并执行像 $car->repairs()
这样简单的操作来获得维修并简单地传入Car
模型到搜索。