私はこのことができません。これは簡単なはずですが、関係を使って別のテーブルからユーザーのゲーマータグにアクセスする方法を理解することはできません。ここでララベルの関係 - 他のテーブルからの入力を受け入れる
は私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 }}
$ message-> userの出力は何ですか? – Daniel
これはあまりにも奇妙ですLOL〜 – KmasterYC
明日明日にそれを理解しよう – David