Новичок для PHP/Laravel здесь, пожалуйста, будьте терпеливы.
У меня есть веб-страница, которая ищет по 3 критериям для собак, породы, пола и радиуса.
вот соответствующий код:
страница поиска
<div class="col-md-12 zero-pad-left zero-pad-right">
{{ Form::open(array('action' => array('[email protected]'), 'class'=>'form width88', 'role'=>'search', 'method' => 'GET')) }}
<div id="prefetch">
{{ Form::text('search-breed', null, array('class' => 'typeahead form-group form-control', 'placeholder' => 'Search by breed here...')) }}
{{ Form::text('sex', null, array('class' => 'form-group form-control', 'placeholder' => 'Search by sex here...')) }}
{{ Form::text('miles', null, array('class' => 'form-group form-control', 'placeholder' => 'Search by distance here...')) }}
</div>
{{ Form::submit('Search', array('class' => 'btn btn-default search-bar-btn')) }}
{{ Form::close() }}
ControllerPage
class DogsController extends \BaseController {
public function __construct()
{
// call base controller constructor
parent::__construct();
// run auth filter before all methods on this controller except index and show
$this->beforeFilter('auth', array('except' => array('show')));
}
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
if (Input::has('search')) {
$queryString = Input::get('search');
$dogs = Dog::where('name', 'LIKE', "%$queryString%")->orderBy('name')->paginate(5);
}
elseif (Input::has('search-breed'))
{
$dogs = Dog::whereHas('breed', function($q)
{
$queryString = Input::get('search-breed');
$q->where('name', 'LIKE', "%$queryString%");
})->orderBy('name')->paginate(5);
} //end elseif
else {
$dogs = Dog::orderBy('name')->paginate(5);
} //end else
return View::make('dogs.index')->with(array('dogs' => $dogs));
} //end function index()
когда я вхожу в поиск пуделя, мужчина, в радиусе 20 миль, он показывает следующее:
http://ruff-love.dev/dogs?search-breed=poodle&sex=M&miles=20
Поиск в настоящее время работает нормально при поиске только породы.
Кажется, я не могу понять синтаксис, чтобы добавить критерии SEX и RADIUS. он должен допускать, чтобы эти критерии были пустыми и все еще выполняли запрос.
любой совет будет очень признателен