表友:
$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
中添加数据?
答案 0 :(得分:1)
我认为潜在的问题是模型绑定,我假设您的路线有一个名为user的参数。然后,我将使用AppServiceProvider.php
或RouteServiceProvider.php
boot()
方法显式定义您的模型绑定。
use Illuminate\Support\Facades\Route;
Route::model('user', User::class);