我正在尝试与关注者一起制作一个应用,但在查看所关注的人时遇到一些麻烦
这是用户模型:
public function books(){
return $this->hasMany('App\Book', 'book_id');
}
public function follows() {
return $this->hasMany(Follow::class);
}
public function isFollowing($target_id)
{
return (bool)$this->follows()->where('target_id', $target_id)->first(['id']);
}
这是跟随模型
class Follow extends Model
{
protected $fillable = ['target_id'];
public function user()
{
return $this->belongsTo(User::class);
}
}
这是FollowController
public function follow(User $user)
{
if (!Auth::user()->isFollowing($user->id)) {
// Create a new follow instance for the authenticated user
Auth::user()->follows()->create([
'target_id' => $user->id,
]);
return back()->with('success', 'You are now friends with '. $user->name);
} else {
return back()->with('error', 'You are already following this person');
}
}
这是userController
public function showOwnProfile()
{
$usuarioLog=Auth::user();
$user = User::find($usuarioLog->id);
$follow=Follow::where("target_id","=",$usuarioLog["id"] )->get();
$following=Follow::where("user_id","=",$usuarioLog["id"] )->get();
$userBooks = Book::where('user_id', '=', $usuarioLog["id"])->get();
$usuarioLog=Auth::user();
$myBooks=Book::where("user_id","=","$usuarioLog->id")->get();
$vacLibros=compact("userBooks");
$vacUser = compact('user', 'follow','following','myBooks','usuarioLog');
return view("/profile", $vacLibros, $vacUser);
}
最后是视图(我想在此可视化所关注的人)
<h1>lista de seguidos</h1>
@forelse ($following as $following_user) //??????
<p> <a style="color:black; font-weight:bolder" href="/normalProfile/{{$following_user}}"> {{//?????}}</a></p>
@empty
<p> No sigues a nadie</p>
@endforelse
答案 0 :(得分:1)
您需要将该列放在{{}}
中,将您要调用的列放在此处
<p> <a style="color:black; font-weight:bolder" href="/normalProfile/{{$following_user->column}}"> {{//?????}}</a></p>
由于我不知道您的列名是什么,所以我只输入一列,以便您对其进行编辑。
我在关系查询中不懂,但是尝试一下:
$following=Follow::where("user_id","=",$usuarioLog["id"] )
->join('users', 'users.id', '=', 'follow.target_id')
->select('follow.*','users.*')->get();