我在用户和消息之间创建了模型关系。我想为身份验证的用户实现消息列表,但我会收到以下错误。
方法照明 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()}}
希望它能帮助您
有两种解决此问题的方法:
- 从数据库搜索数据时要么使用paginate函数:
$ users = db :: table('用户'( - &gt; where('id',$ user_id( - &gt; paginate(1(;
- 从index.blade.php 删除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);
}