2016-08-21 3 views
0

В настоящее время я делаю проект. В этом проекте я не могу сделать свою форму поиска. Моя кнопка поиска не показывает никакой ценности. Он просто вернул пустую страницу. Пожалуйста помогите. Мой МаршрутПоиск не работает в laravel 5.1

Route::get('/search', array('as' =>'search' ,'uses' => '[email protected]')); 

My клинок Шаблон

<header id="header"> 
    <div class="top-bar"> 
     <div class="container"> 
      <div class="row"> 
       <div class="col-sm-12 col-xs-12"> 
        <div class="social"> 
         <ul class="social-share"> 
          <li><a href="#"><i class="fa fa-google-plus"></i></a></li> 
          <li><a href="#"><i class="fa fa-facebook"></i></a></li> 
          <li><a href="#"><i class="fa fa-twitter"></i></a></li> 
          <li><a href="#"><i class="fa fa-skype"></i></a></li> 
         </ul> 
         <div class="search"> 
          {!! Form::open(['route' => 'search', 'method'=> 'GET']) !!} 

           <input type="text" class="search-form" name="search" autocomplete="off" placeholder="Search"> 

            <i class="fa fa-search"></i> 

          {!! Form::close() !!} 
          </div> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div><!--/.container--> 
    </div><!--/.top-bar--> 

    <nav class="navbar navbar-inverse" role="banner"> 
     <div class="container"> 
      <div class="navbar-header"> 
       <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
        <span class="sr-only">Toggle navigation</span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 
       <a class="navbar-brand" href="{!! URL::route('home') !!}">{!! Html::image('images/logo.png','logo') !!}</a> 
      </div> 

      <div class="collapse navbar-collapse navbar-right"> 
       <ul class="nav navbar-nav"> 
        <li <?php if($active == 'home') {echo 'class="active"';} ?>><a href="{!! URL::route('home') !!}">Home</a></li> 

        <li <?php if($active == 'about_us') {echo 'class="active"';} ?>><a href="{!! URL::route('about_us') !!}">About Us</a></li> 

        <li <?php if($active == 'hospital') {echo 'class="active"';} ?> class="dropdown" > 
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Hospitals <i class="fa fa-angle-down"></i></a> 
         <ul class="dropdown-menu"> 
          @foreach($divisions as $division) 

           <li><a href="{!! URL::route('district', $division['id']) !!}">{{ $division['name'] }}</a></li> 

          @endforeach 

         </ul> 
        </li> 

        <li <?php if($active == 'doctor') {echo 'class="active"';} ?> class="dropdown" > 
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Doctors <i class="fa fa-angle-down"></i></a> 
         <ul class="dropdown-menu"> 

         @foreach($divisions as $division) 
           <li><a href="{!! URL::route('districts',$division['id']) !!}">{{ $division->name }}</a></li> 

          @endforeach 

         </ul> 
        </li> 

        <li <?php if($active == 'contact') {echo 'class="active"';} ?>><a href="{!! URL::route('contact') !!}">Contact Us</a></li> 

        <li <?php if($active == 'login') {echo 'class="active"';} ?>><a href="{!! URL::route('login') !!}">Login</a></li> 

        <li <?php if($active == 'register') {echo 'class="active"';} ?>><a href="{!! URL::route('register') !!}">Sign Up</a></li>       
       </ul> 
      </div> 
     </div><!--/.container--> 
    </nav><!--/nav--> 

</header><!--/header--> 

Моего контроллер

public function search(Request $req) 
    { 

     $divisions = Division::all(); 
     $doctors = Doctor::orderBy('name'); 
     $name = $req->input('name'); 
     if(!empty($name)) { 
      $doctors->where('name', 'LIKE', '%' . $name . '%'); 
     } 
     $doctors=$doctors->paginate(1); 
     return view('users.index') 
        ->with('divisions',$divisions) 
        ->with('doctors',$doctors); 

    } 

ответ

0

Решение проблемы заключается в том

public function search(Request $req) 
    { 

    $divisions = Division::all(); 
    $name = $req->input('search'); 

    $doctors = User::where('name', 'LIKE', '%' . $name . '%')->get(); 

    return view('users.search') 
       ->with('divisions',$divisions) 
       ->with('doctors',$doctors); 

    } 
0

Прежде всего в пути вы можете написать это использование почтового метода для передачи ключевого слова для поиска

Route::post('/search', '[email protected]_bar')->name('search'); 

После этого в шаблоне лезвия сделать небольшое изменение в шаблоне лезвия

{!! Form::open(['route' => 'search']) !!} 

    <input type="text" class="search-form" name="search" autocomplete="off" placeholder="Search"> 

    <i class="fa fa-search"></i> {!! Form::submit($btnTxt,array('class'=>'btn btn-success')) !!} {!! Form::close() !!} 

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

public function search(Request $request) 
    { 
    $name = $request->input('search'); 
    if(null !== $name) 
    { 
     $doctors = App\Doctor::where('name', 'LIKE', '%' . $name .'%')->paginate(10); 
    return view('users.index',compact('doctors')); 
    }else{ 
     return redirect()->back(); 
    } 

}

Убедитесь, что вы указываете на правильный путь зрения, веселит спариваться он будет работать для вас наверняка :)

+0

жаль ваш код не работает. Он ничего не показывает @Roshan Ranabhat –

0

Вы ищете $req->input('name') еще, но вы его назвали search в вашей форме; name="search".

Либо изменить ваш вклад в это:

<input type="text" class="search-form" name="name" autocomplete="off" placeholder="Search"> 

Или ваш запрос контроллера:

$name = $req->input('search'); 

Это также выглядит как ваша форма отсутствует кнопка отправки?

<input type="submit" value="Search"> 
+0

Информация не найдена. Plz heelp –

+0

@ Jahid26 Вы попробовали то, что я предложил? – James

+0

да я пробовал ваш код @James –

Смежные вопросы