我在用户和消息之间创建了一个模型关系。我想为经过身份验证的用户实现消息列表,但出现以下错误。
方法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)”
答案 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种方法可以解决此问题:
$ users = DB :: table('users')-> where('id',$ user_id)-> paginate(1);
{{$ messages-> links()}}