添加朋友模型属于多个关系

时间:2019-11-20 14:10:02

标签: php mysql laravel eloquent

表友:

$table->integer('user_id');

表friend_user:

$table->integer('user_id');
$table->integer('friend_id');
$table->primary(['user_id', 'friend_id']);

用户模型:

public function friends()
{
    return $this->belongsToMany(User::class, 'friend_user', 'user_id', 'friend_id');
}

UserController:

public function getAddFriend(User $user)
{
    Auth::user()->friends()->attach($user->id);

    return redirect()->back();
}

为什么如果我在$user->id中写入attach(),则数据没有插入表friend_user中,但是如果我在其中写入id(1、2或其他内容) attach(),数据插入到表friend_user中了吗?

单击后如何在表friend_user中添加数据?

1 个答案:

答案 0 :(得分:1)

我认为潜在的问题是模型绑定,我假设您的路线有一个名为user的参数。然后,我将使用AppServiceProvider.phpRouteServiceProvider.php boot()方法显式定义您的模型绑定。

use Illuminate\Support\Facades\Route;

Route::model('user', User::class);