方法不存在方法 database eLoquent collection ::链接不存在



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

方法照明 database eloquent collection ::链接不存在

控制器

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('AppUser');
    }
}

用户提供商

public function message ()
{
    return $this->hasMany('AppMessage');
}

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

错误

"方法照明 database eloquent collection ::链接不存在。

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

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

{{$messages->links() }}

如果您要在数据访问视图时试图打开数据,则需要在将数据传递到视图之前,需要在控制器中添加台词。示例

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

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

 {{$users->links()}}

希望它能帮助您

有两种解决此问题的方法:

  1. 从数据库搜索数据时要么使用paginate函数:

$ users = db :: table('用户'( - &gt; where('id',$ user_id( - &gt; paginate(1(;

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

{{{$ messages-&gt; links((}}}

remove {{$ message-&gt; links((}}在您的index.blade.php中删除{{$ message-&gt; links((}}}}使用Paginate

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

    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);
    }

最新更新