【问题标题】:laravel search paginate Call to undefined method links()laravel search paginate 调用未定义的方法 links()
【发布时间】:2014-11-08 09:25:08
【问题描述】:

您好,我在 laravel 中实现了一个搜索工具,它返回搜索查询,但我的 laravel 日志中也出现此错误,如下所示:

 [2014-09-14 21:06:20] production.ERROR: exception 
 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to undefined method 
  Illuminate\Database\Eloquent\Collection::links()' in 
  /media/sf_Sites/tempus/app/storage/views/424d7d6280a6a7c59b31268a6d17e44a:27
Stack trace:
#0 [internal function]: Illuminate\Exception\Handler->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"
));

我不确定为什么在我的链接方法上执行搜索查询时出现错误,有什么想法吗?

【问题讨论】:

  • 我不确定紧凑函数的作用,但我认为你必须做类似 $projects->paginate();

标签: search laravel pagination


【解决方案1】:

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

public function searchProjects($query){

    return \Project::where('project_name', 'LIKE', "%$query%" )
        ->orderby('project_name', 'asc')
        ->paginate(9);

}

【讨论】:

    猜你喜欢
    • 2015-04-17
    • 2017-11-23
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 2020-09-22
    • 2013-10-23
    相关资源
    最近更新 更多