方法Illuminate \ Database \ Eloquent \ Collection :: links不存在

时间:2019-05-23 15:03:21

标签: laravel

我在用户和消息之间创建了一个模型关系。我想为经过身份验证的用户实现消息列表,但出现以下错误。

  

方法Illuminate \ Database \ Eloquent \ Collection :: links不存在

控制器

public function index()
{
    $user_id = auth()->user()->id;
    $user = User::find($user_id);
    return view('message.index')->with('messages', $user->message);
}

消息提供者

class message extends Model
{
    public function user() {
        return $this->belongsTo('App\User');
    }
}

用户提供商

public function message ()
{
    return $this->hasMany('App\Message');
}

index.blade.php

@extends('layouts.app')
@section('content')
    <h1>messages</h1>
    @if(count($messages)>0)
        @foreach ($messages as $message)
            <div class="well">
                <h3><a href="/message/{{$message->id}}">{{$message->user}}</a></h3>
                <small>Written on {{$message->created_at}} </small>
            </div>
        @endforeach
        {{$messages->links()}}
    @else
        <p> no post found </p>
    @endif
@endsection

错误

  

“方法Illuminate \ Database \ Eloquent \ Collection ::链接不存在。(视图:C:\ xampp \ htdocs \ basicwebsite \ resources \ views \ message \ index.blade.php)”

4 个答案:

答案 0 :(得分:3)

如果要在到达视图时对数据进行分页,则需要先将分页添加到控制器中,然后再将数据传递给视图。例子

return $users = Users::select('id','name')->paginate(10);

在控制器中使用该分页方法,您可以调用links方法在视图中分页对象,如下所示

 {{$user->links()}}

希望对您有帮助

答案 1 :(得分:0)

检查您的视图刀片,该方法links()仅可在您的数据模型实现分页方法时使用。 如果您不使用分页,请删除此部分:

 {{$messages->links()}}

答案 2 :(得分:0)

您可以在控制器文件中执行类似的操作。

    public function index()
    {
        $messages = Message::all()->paginate(5);
        $user_id = auth()->user()->id;
        $user = User::find($user_id);
        return view('message.index')->with('messages', $messages, $user->message);
    }

答案 3 :(得分:0)

有2种方法可以解决此问题:

  1. 从数据库搜索数据时都使用分页功能:

$ users = DB :: table('users')-> where('id',$ user_id)-> paginate(1);

  1. 从index.blade.php中删除links()函数

{{$ messages-> links()}}