2017-12-29 56 views
1

投稿を作成したユーザーの名前を取得しようとするとこのエラーが発生します。Laravelで1対多の関係を使用しているときに非オブジェクトのプロパティを取得しようとしています

私のモデルは次のようになります。私は私の見解でこれを行うことにより、名前を表示しよう

class User extends Authenticatable { 
    use Notifiable, CanResetPassword; 

    public function posts() { 
     return $this->hasMany('App\Post'); 
    } 
} 

&

class Post extends Model { 

    public function user() { 
     return $this->belongsTo('App\User', 'user_id'); 
    } 
} 

@foreach($posts as $post) 
    <tr> 
     <td>{{ $post->user->name }}</td>   
    </tr> 
@endforeach 

そして、私のコントローラがどのように見えますこれは:

public function getAdminIndex() { 
    $posts = Post::orderBy('id', 'desc')->get(); 
    $comments = Comment::all(); 
    $likes = Like::all(); 
    $users = User::all(); 

    return view('admin.index', ['posts' => $posts, 'comments' => $comments, 'likes' => $likes, 'users' => $users]); 
} 

私が間違っていることを教えてもらえますか?

ありがとうございました!

答えて

4

それはないすべての記事は、ユーザーが持っているので、このような何かを意味します

<td>{{ optional($post->user)->name }}</td> 

または:

<td>{{ empty($post->user) ? 'No user' : $post->user->name }}</td> 
+1

トリックは、できるだけ早くあなたの答えを受け入れるんでしオプション、ありがとうございました私はできる! –

関連する問題