我有一张桌子"评论"使用名为" from_user"的列。所以基本上是放置评论的用户。在此列中,用户的id存储在users表中。是否可以在我的视图中找到用户名?
这就是现在的样子:
@foreach($authUser->reviews as $review)
<p>{{ $review->body }} - {{$review->from_user }}</p>
@endforeach
因此,此代码现在显然显示了用户的ID。
这是我的用户表的样子:
ID | NAME | USERNAME | ...
这是我的评论表的样子:
ID | from_user | on_user |体
所以我的评论表中的from_user等于我的用户表的ID
所以我的问题是我可以在我的视图中访问我的foreach循环中的用户名吗?
我对laraval相当新,所以感谢任何帮助!
非常感谢提前
class User extends Model implements AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword, Messagable;
protected $table = 'users';
protected $fillable = ['name', 'email', 'password', 'firstname', 'lastname', 'straat', 'postcode', 'plaats', 'provincie', 'role', 'specialisatie'];
protected $hidden = ['password', 'remember_token'];
public function projects()
{
return $this->hasMany('App\Project');
}
public function reviews()
{
return $this->hasMany('App\Review');
}
public function comments()
{
return $this->hasMany('App\Comment');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Review extends Model
{
protected $guarded = [];
protected $table = 'reviews';
public function User()
{
return $this->belongsTo('App\User');
}
}
答案 0 :(得分:1)
<强>更新强>
在review model
中,您需要告诉关系使用哪个外键。默认情况下,它会添加relationName_id
。
Eloquent通过检查确定默认外键名称 关系方法的名称和后缀方法名称 _ID。但是,如果Phone模型上的外键不是user_id,则可以将自定义键名作为第二个参数传递给belongsTo 方法。 #Source
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Review extends Model
{
protected $guarded = [];
protected $table = 'reviews';
public function user()
{
return $this->belongsTo('App\User', 'from_user');
}
}
在你看来
@foreach($authUser->reviews as $review)
<p>{{ $review->body }} - {{ $review->user->name }}</p>
@endforeach