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

smo*_*ouk 6 laravel

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

方法 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);
}
Run Code Online (Sandbox Code Playgroud)

消息提供者

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

用户提供者

public function message ()
{
    return $this->hasMany('App\Message');
}
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

错误

“方法Illuminate\Database\Eloquent\Collection::links 不存在。(查看:C:\xampp\htdocs\basicwebsite\resources\views\message\index.blade.php)”

小智 11

检查您的视图刀片,该方法 ( links()) 只能在您的数据模型正在实现paginate()方法时使用。

如果您不使用paginate(),请删除此部分:

{{$messages->links() }}
Run Code Online (Sandbox Code Playgroud)


sta*_*ote 6

如果您试图在数据到达视图时对其进行分页,那么您需要在将数据传递到视图之前在控制器中添加分页。例子

return $users = Users::select('id','name')->paginate(10);
Run Code Online (Sandbox Code Playgroud)

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

 {{$users->links()}}
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助