Как подключить форму поиска к базе данных и получить данные на Laravel

Я пытаюсь подключить форму поиска к моей базе данных и получать данные оттуда. Но что-то идет не так. Мой диспетчер или мои маршруты … Но я не мог понять это.

проблема в том, что он показывает данные напрямую, искал.
Я хочу видеть данные при поиске. Также попробуйте поискать, и это идет:

Collection {#221 ▼
#items: []
}

Мое мнение здесь:

<form action="{{URL::to('welcome')}}" method="post" role="search" class="searchbox">
{{csrf_field()}}
<input type="text" name="q" class="search" placeholder="町, 地域, 会社名, 物件名">
<input type="submit" name="submit" class="submit" value="search">
</form>
@if(isset($details))
<p> here is the results <b>{{$query}}</b> are : </p>
@endif
<table cellspacing='0'>
<thead>
<tr>
<th>会社名</th>
<th>物件名</th>
<th>住所</th>
<th>販売価格</th>
<th>専有面積</th>
<th>間取り</th>
<th>竣工時期</th>
<th>入居時期</th>
</tr>
<thead>
<tbody>
@foreach($estates as $estate)
<tr class="even">
<td>{{$estate->company_name}}</td>
<td><a href="{{json_decode($estate->link)}}" target="_blank">{{$estate->name}}</a><br/></td>
<td>{{$estate->address}}</td>
<td>{{$estate->price}}</td>
<td>{{$estate->extend}}</td>
<td>{{$estate->rooms}}</td>
<td>{{$estate->old}}</td>
<td>{{$estate->entery}}</td>
</tr>
@endforeach
</tbody>
</table>

Также здесь есть контроллер и мой маршрут.
Что я здесь делаю?

public function welcome()
{

$estates = Estates::orderBy('price')->get();

$data['estates'] = $estates;
return view('welcome', $data);

}

public function search(Request $request)
{
$q = $request->q;
if ($q != " "){

$estates = \DB::table('estates')->where("name","LIKE", "%" . $q . "%")
->orWhere("address","LIKE", "%" . $q . "%")
->get();

dd($estates);

if(count($estates) > 0){
return view("welcome", compact('estates'))->withQuery($q);
}

}

return view("welcome")->withMessage("No Found!");
}

Вот маршрут:

Route::get("/", "PagesController@welcome");

Route::post("/", "PagesController@search")->name('search.route');

Я не мог понять это. Также первый контроллер welcome безошибочный поиск данных без формы поиска! Но я хочу, чтобы он запускался при попытке поиска. Любая помощь? Спасибо!

0

Решение

Измените действие формы на

<form action="{{ route('search.route') }}" method="post" role="search" class="searchbox">

Измените свой маршрут на

Route::post("/", "PagesController@search")->name('search.route');

добавлять use Illuminate\Http\Request; поверх вашего PagesController и измените метод контроллера на

public function search(Request $request)
{
$q = $request->q;
if ($q != " "){

$estates = \DB::table('estates')->where("name","LIKE", "%" . $q . "%")
->orWhere("address","LIKE", "%" . $q . "%")
->get();

dd($estates);

if(count($estates) > 0){
return view("welcome", compact('estates'))->withQuery($q);
}

}

return view("welcome")->withMessage("No Found!");
}
0

Другие решения

здесь вы можете сделать это тоже так

изменить маршрут, как это

Route::post("/", "PagesController@search")->name('routeName');

и измените форму действия, как это

<form action="{{route('routeName')}}" method="post" role="search" class="searchbox">

или отредактируйте ваш код и передайте его значение в кавычки

<form action="{{URL::to('welcome')}}" method="post" role="search" class="searchbox">

Для получения дополнительной информации проверьте это Маршруты Ларавела

0

По вопросам рекламы [email protected]