我试图让一个网站,用户有项目,我试图使一种“活动墙”,以改善每个项目的沟通,所以这个“活动墙”的消息属于项目和消息插入它属于用户了。
因此,我创建了下面的迁移:
Schema::create('messages', function (Blueprint $table) {
$table->id();
$table->string('content'); //the message
$table->string('file'); //if has a file
$table->integer('user_id')->constrained(); //to make the relationship with the Users table
$table->integer('projeto_id')->constrained();//to make the relationship with the Projetos (Projectc) table
$table->timestamps();
});
在Projeto Model中,我创建了关系
Projeto.php
public function message()
{
return $this->hasMany(Message::class);
}
同向
User.php
public function messages(){
return $this->hasMany(Message::class);
}
而这对
Message.php
public function projetos()
{
return $this->belongsTo(Projeto::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
但问题是:当我试图获取具有项目关系的消息表时
public function index($id)
{
$projeto = Projeto::findOrFail($id);
$messages = $projeto->message;
}
我无法获取用户关系以获取邮件的所有者用户名,从而无法返回到我的视图。如何才能更好地实现这一点?
1条答案
按热度按时间zzwlnbp81#
您应该使用
with
,以防止n query
: