laravel search paginate调用未定义的方法链接()



嗨,我在laravel中实现了一个搜索功能,它返回搜索查询,但我在我的laravel日志中也收到了这个错误,如下所示:

 [2014-09-14 21:06:20] production.ERROR: exception 
 'SymfonyComponentDebugExceptionFatalErrorException' with message 'Call to undefined method 
  IlluminateDatabaseEloquentCollection::links()' in 
  /media/sf_Sites/tempus/app/storage/views/424d7d6280a6a7c59b31268a6d17e44a:27
Stack trace:
#0 [internal function]: IlluminateExceptionHandler->handleShutdown()
#1 {main} [] []

我的代码如下:

项目/索引

@extends('layouts.master')
@section("content")
<div class="container">
    <div>
        {{ Form::open(['method' => 'GET', 'class' => 'nav-bar-form navbar-right']) }}
        <div class="form-group">
            {{ Form::input('search', 'q', null,['class' => 'form-control','placeholder' => 'Search']) }}
            <button type="submit" class="btn btn-default">Submit</button>
        </div>
    </div>
    @if (Auth::check())
    @if (count($projects) > 0)
    @foreach ($projects as $project)
   <p> {{ $project->project_name }}</p>
    @endforeach
    @else
    <h5 class="errorslist">No match found</a></h5>
    @endif
    @endif
</div>
<div class="container">
    <ul class="pagination">
        <li>{{ $projects->links() }}</li>
    </ul>
</div>
{{ Form::close() }}
@stop

存储库

public function searchProjects($query){
    return Project::where('project_name', 'LIKE', "%$query%" )
        ->orderby('project_name', 'asc')
        ->get();
}
public function getAll()
{
    // get all logged in users projects and paginate 9 per page
    return Auth::user()->projects()->orderBy('project_name', 'asc')->paginate(9);
}

控制器:

public function index()
    {

$query = Request::get('q');
$projects = $query
    ? $this->project->searchProjects($query)
    : $this->project->getAll();
        echo View::make('projects.index', compact('projects'));

    }

路由

Route::get('projects/index', array('before' => 'auth',
    "as"   => "projects/index",
    "uses" => "ProjectController@index"
));

我不知道为什么我在对链接方法执行搜索查询时会出错,有什么想法吗?

您还需要对searchProjects方法进行分页:

public function searchProjects($query){
    return Project::where('project_name', 'LIKE', "%$query%" )
        ->orderby('project_name', 'asc')
        ->paginate(9);
}

最新更新