私は、関連するテーブルからデータを読み込む方法を理解しようとしています。私はGroup
とGroupTextPost
の2つのモデルを持っています。Eloquent - Eager Loading Relationship
Group.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Group extends Model
{
protected $table = 'group';
public function type()
{
return $this->hasOne('\App\Models\GroupType');
}
public function user()
{
return $this->belongsTo('\App\Models\User');
}
public function messages()
{
return $this->hasMany('\App\Models\GroupTextPost');
}
}
グループのテキスト記事をフェッチするとき、私は何をしようとしているGroupTextPost.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class GroupTextPost extends Model
{
protected $table = 'group_text_post';
public function user()
{
return $this->belongsTo('\App\Models\User');
}
public function group()
{
return $this->belongsTo('\App\Models\Group');
}
}
はuser
熱心な負荷である私が引っ張ったときになるようにユーザーの名前が含まれるメッセージ
私はそうのようにそれをやってみました:
public function messages()
{
return $this->hasMany('\App\Models\GroupTextPost')->with('user');
}
...などのように呼び出す:
$group = Group::find($groupID);
$group->messages[0]->firstname
しかし、私はエラーを取得する:
Unhandled Exception: Call to undefined method Illuminate\Database\Query\Builder::firstname()
はこれですEloquentと関係がありますか?
てみ '' '$ M = $基 - >メッセージを使用することができます - >()を取得し、次に' ''と'' '$ m [0] - > user [0] - > first_name;' '' – Dev
メッセージはファーストネームかユーザーが持っていますか? – Dev
@Devユーザーはファーストネームを持っています。 – BugHunterUK