我想显示张贴在墙上的用户的ID,但显示错误。我正在学习laravel中的关系。 帖子属于1位用户。 1个用户可以有多个帖子。 谢谢。
帖子模型
class Post extends Model
{
public function users(){
return $this->belongsTo('\App\User');
}
后置控制器
class PostsController extends Controller
{
public function index()
{
$p = \App\Post::all();
return view('posts.index',compact('p'));
}
}
帖子\索引
<?php
foreach ($p as $value) {
echo $value->title." ".$value->body." posted by ".$value->users->id."
<br>";}
?>
答案 0 :(得分:0)
首先:您的帖子只有1个作者(作者)用户,因此将其设为user()
而不是users()
向用户模型public function posts() {
添加关系是hasMany
以鹰式装载$posts = Post::with('user')->get();
通过这种方式,您可以在刀片中获得作者信息,例如:
@foreach($posts as $post)
{{$post->title}} <br>
{{$post->user->name}}
@endforeach
希望有帮助。
答案 1 :(得分:0)
您可以dd($ value-> users)观看它!
答案 2 :(得分:-1)
$value->users->id
应该是
A:$value->users()->id
或像这样更新您的控制器:
B:$p = \App\Post::with('users')->get();