【问题标题】:Laravel 4, Eloquents pagination methodLaravel 4,Eloquents 分页方法
【发布时间】:2014-04-13 19:43:38
【问题描述】:

你好!尝试在 eloquent 模型上使用 paginate 方法时遇到问题。问题是在我的视图文件中调用{{ $model->links() }} 会抛出一个Call to undefined method Illuminate\Database\Query\Builder::links(),由于它在另一个视图文件上完美地工作,所以它并没有真正让我到任何地方。

控制器.php

$data = Routine::whereHas('measurements', function($q)
                {
                    $fra = str_replace("/","-", Input::get('fraDato'));
                    $fra = date('Y-m-d', strtotime($fra));
                    $til = str_replace("/","-", Input::get('tilDato'));
                    $til = date('Y-m-d', strtotime($til));

                    $q->whereBetween('date', array($fra, $til));
                })->with('emps')->orderBy('date', 'time', 'title')->paginate(5);

                return View::make('sok')
                ->with('title', 'Søk')
                ->with('date', $date)
                ->with('data', $data);

sok.blade.php

@if(isset($data))
        <table>
            <tr>
                <td>ID</td>
                <td>Tittel</td>
                <td>Verdi</td>
                <td>Ansatt ID</td>
                <td>Dato</td>
                <td>Tid</td>
                <td>Basseng</td>
            </tr>
            @foreach($data as $data)
                <tr>
                    <td>{{ $data->id }}</td>
                    <td>{{ $data->measurements[0]->title }}</td>
                    <td>{{ $data->value }}</td>
                    <td>{{ $data->emps->user_name }}</td>
                    <td>{{ date('d/m/Y', strtotime($data->date)) }}</td>
                    <td>{{ $data->time }}</td>
                    @foreach($data->measurements as $measurement)
                        <td>{{ $measurement->pivot->pool_id }}</td>
                    @endforeach
                    <td>{{ HTML::linkRoute('edit_data', 'Rediger', $data->id) }}</td>
                    <td>{{ HTML::linkRoute('delete_confirm', 'Slett', $data->id) }}
                    </td>
                </tr>
            @endforeach
                   {{ $data->links() }}

谢谢!

【问题讨论】:

  • 以及为什么要定义两个-&gt;with('date', $date) ??

标签: laravel pagination eloquent


【解决方案1】:

您在 foreach 中覆盖 $data:

 @foreach($data as $data)

将其更改为例如。

 @foreach($data as $dataItem)

我建议使用有意义的变量名,这样你就不会遇到这样的问题。 $data 是如此通用,你可以用它来命名所有东西。改用 $routines。

【讨论】:

    【解决方案2】:

    这是什么?

    ->with('title', '$sok')
    

    那是空的。

    Controller.php

    $data = Routine::whereHas('measurements', function($q)
                    {
                        $fra = str_replace("/","-", Input::get('fraDato'));
                        $fra = date('Y-m-d', strtotime($fra));
                        $til = str_replace("/","-", Input::get('tilDato'));
                        $til = date('Y-m-d', strtotime($til));
    
                        $q->whereBetween('date', array($fra, $til));
                    })->with('emps')->orderBy('date', 'time', 'title')->paginate(5);
    
                    return View::make('sok')
                    ->with('data', $data);
    

    sok.blade.php

    @if(isset($data))
            <table>
                <tr>
                    <td>ID</td>
                    <td>Tittel</td>
                    <td>Verdi</td>
                    <td>Ansatt ID</td>
                    <td>Dato</td>
                    <td>Tid</td>
                    <td>Basseng</td>
                </tr>
                @foreach($data as $items)
                    <tr>
                        <td>{{ $items->id }}</td>
                        <td>{{ $items->measurements[0]->title }}</td>
                        <td>{{ $items->value }}</td>
                        <td>{{ $items->emps->user_name }}</td>
                        <td>{{ date('d/m/Y', strtotime($data->date)) }}</td>
                        <td>{{ $items->time }}</td>
                        @foreach($items->measurements as $measurementItems)
                            <td>{{ $measurementItems->pivot->pool_id }}</td>
                        @endforeach
                        <td>{{ HTML::linkRoute('edit_data', 'Rediger', $data->id) }}</td>
                        <td>{{ HTML::linkRoute('delete_confirm', 'Slett', $items->id) }}
                        </td>
                    </tr>
                @endforeach
                       {{ $items->links() }}
    

    【讨论】:

      猜你喜欢
      • 2016-10-22
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 2013-06-27
      • 2013-06-08
      • 2014-09-10
      • 2014-11-02
      相关资源
      最近更新 更多