2017-05-02 10 views
1

Ich habe Suchfeld für mein Laravel-Projekt scheint es funktioniert, weil nach Anfrage ich http://project.dev/search?q=fifth bekommen, aber nichts in Blade-Vorlage gedruckt. meinLaravel Suche nicht die Ergebnisse drucken

hier ist SearchController

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Post; 
use Illuminate\Support\Facades\Input; 
use Carbon\Carbon; 

class SearchController extends Controller 
{ 
    public function index() { 
     $countTodayOrders = Post::whereRaw('Date(created_at) = CURDATE()')->count(); 
     $yesterday_posts = Post::whereRaw('Date(created_at) = DATE_ADD(CURDATE(), INTERVAL -1 DAY)')->count(); 
     $weekly_posts = Post::whereBetween('updated_at', [Carbon::today()->startOfWeek(), Carbon::today()->endOfWeek()])->count(); 
     $monthy_posts = Post::whereRaw('MONTH(created_at) = ?', Carbon::today()->month)->count(); 



     $q = Input::get('q'); 

     $posts = Post::where('title','LIKE','%'.$q.'%')->orWhere('slug','LIKE','%'.$q.'%')->get(); 

     if(count($posts) > 0) 
      return view('theme.search', compact('posts', 'countTodayOrders', 'yesterday_posts', 'weekly_posts', 'monthy_posts'))->withQuery ($q); 
     else return view ('theme.index')->withMessage('No Details found. Try to search again !'); 
    } 
} 

Hier ist meine Suchformular

<!-- search box --> 
         <form action="/search" method="get" role="search"> 
          <div class="input-group"> 
           <input type="text" class="form-control" name="q" placeholder="Search users"> <span class="input-group-btn"> 
            <button type="submit" class="btn btn-default"> 
             <span class="glyphicon glyphicon-search"></span> 
            </button> 
           </span> 
          </div> 
         </form> 
         <!-- search box --> 

Hier ist meine Routen

Route::any('/search', ['uses' => '[email protected]', 'as' => 'search.index']); 

Hier ist meine Klinge

@extends('layout.app') 

@section('content') 
<div class="col-md-9 technology-left"> 
      <div class="tc-ch wow fadeInDown" data-wow-duration=".8s" data-wow-delay=".2s"> 


       @if(isset($details)) 
        <p> The Search results for your query <b> {{ $query }} </b> are :</p> 
       <h2>Sample User details</h2> 
       <table class="table table-striped"> 
        <thead> 
         <tr> 
          <th>Post</th> 
         </tr> 
        </thead> 
        <tbody> 
         @foreach($posts as $post) 
         <tr> 
          <td>{{$post->name}}</td> 
         </tr> 
         @endforeach 
        </tbody> 
       </table> 
       @endif 

      </div> 
</div> 
@endsection 

wo ist mein Fehler?

aktualisieren

Jetzt habe ich Suchfeld die Arbeit und zeigen Daten mit Paginierung ist, aber wenn ich die Suche beispielsweise für Wort sample, die ich habe 3 Beiträge mit diesem Titel in der ersten Seite der Ergebnisse erhalte ich wie diese Ergebnisse:

first page

Aber wenn ich gehen auf die zweite Seite ändert sich alles!

second page

Warum?

+2

withQuery scheint nicht in Laravel existiert. – manian

+0

@manian sogar mit diesem Teil immer noch nichts zu entfernen. –

+0

Sie haben zwei Ansichten referenziert, aber nur den Code für einen? – Scopey

Antwort

0

Ok Leute, ich habe es dank, das Problem war mitQuery Methode, wie ich compact verwendet habe ich sollte nicht with ich habe es nur zu `kompakt und jetzt funktioniert es. Aber was ist mit dem Zählen der Ergebnisse? Wie kann ich die Anzahl der gefundenen Ergebnisse in Blade weitergeben?

+0

Sie können einfach die Anzahl ($ posts) in Ihrer Ansicht verwenden. Sie können die Frage einfach aktualisieren und stattdessen eine weitere Frage in Ihre Antwort einfügen. – manian