2016-08-28 11 views
0

私はこのことができません。これは簡単なはずですが、関係を使って別のテーブルからユーザーのゲーマータグにアクセスする方法を理解することはできません。ここでララベルの関係 - 他のテーブルからの入力を受け入れる

は私User.phpモデルである:ここでは

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class User extends Model 
{ 
    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = [ 
     'gamertag', 'slug', 'email', 'password', 
    ]; 

    /** 
    * The attributes that should be hidden for arrays. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'password', 
    ]; 


    // A user has many messages (Chat) 
    public function chat() { 
     return $this->hasMany('App\Chat'); 
    } 
} 

は私Chat.phpモデルです:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Chat extends Model { 


    protected $table = "chat"; 


    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = [ 
     'message', 'user_id' 
    ]; 


    // A Chat (or message) belong to a user 
    public function user() { 
     return $this->belongsTo('App\User'); 
    } 


} 

そして、どのように私これは、mはメッセージを取得する:

class HomeController extends Controller { 


    public function index() { 

     $messages = Chat::orderBy('created_at', 'desc')->get(); 

     return view('layouts.index', compact('messages')); 
    } 

} 

なぜゲーマータグを表示するのに問題がありますか?

@foreach($messages as $message) 
    <a class="author">{{ $message->user->gamertag }}</a> 
@endforeach 

/*****編集***/

これは動作します:

{{ dd($message->user->gamertag) }} 
 

 

 

 

 
// This does NOT 
 
{{ $message->user->gamertag }}

enter image description here

+0

$ message-> userの出力は何ですか? – Daniel

+0

これはあまりにも奇妙ですLOL〜 – KmasterYC

+0

明日明日にそれを理解しよう – David

答えて

0

私はそれを理解しました。すべてここで働いていました。私のチャットテーブルにあります。私は特定されたユーザーがいないので、user_id = 0というメッセージを挿入しました。そのエラーを投げていました。愚かな間違い。

1

積極的なロードを使用してください:

を ​​
+0

いいえ、何も。 – David

+0

私は理解できませんでしたが、あなたは何も得られないか、またはゲーマータグを取得しますか?はい、私は{{$ message-> user-> gamertag}}をダンプするとゲーマータグを取得します。あなたが 'dd($ message-> user-> gametag)'でgametagを取得した場合、これは動作していることを意味します。 –

+0

私の編集を見てください – David

関連する問題