You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9点击用户按钮获取目标用户iduser的方法求助

解决Laravel 9中获取目标用户ID的问题

问题根源

你写的$userID = User::find('iduser');是错误用法:find()方法需要传入具体的用户ID值,而不是字段名。当你传入字符串'iduser'时,数据库会自动将其转换为数字0,所以你得到了id为0的用户结果。

正确实现步骤

要获取点击按钮对应的目标用户ID,需要前后端配合传递参数:

1. 前端传递用户ID

在用户列表的操作按钮中,把目标用户的iduser传递到后端:

  • 用链接跳转(GET请求):
<a href="/admin/toggle-role/{{ $user->iduser }}" class="btn">切换角色</a>
  • 用表单提交(POST请求,更安全):
<form action="/admin/toggle-role" method="POST">
    @csrf
    <input type="hidden" name="user_id" value="{{ $user->iduser }}">
    <button type="submit" class="btn">切换角色</button>
</form>

2. 后端接收并查询用户

根据前端的传参方式,在控制器里接收ID并查询:

  • 如果是路由参数(GET方式):
    首先定义路由:
// routes/web.php
Route::get('/admin/toggle-role/{userId}', [UserController::class, 'toggleRole']);

然后控制器方法:

// app/Http/Controllers/UserController.php
public function toggleRole($userId)
{
    // 根据ID查询目标用户
    $targetUser = User::find($userId);
    dd($targetUser); // 现在会得到正确的用户数据
}
  • 如果是表单传参(POST方式):
    定义路由:
// routes/web.php
Route::post('/admin/toggle-role', [UserController::class, 'toggleRole']);

控制器方法:

// app/Http/Controllers/UserController.php
public function toggleRole()
{
    $userId = request()->input('user_id');
    $targetUser = User::find($userId);
    dd($targetUser);
}

额外提醒

  • 确保你的User模型对应的表中,主键字段是iduser,如果不是,需要在模型里指定:
// app/Models/User.php
protected $primaryKey = 'iduser';

如果主键不是自增整数,还要加上public $incrementing = false;(根据你的表结构调整)。

内容的提问来源于stack exchange,提问作者Caroline Dorchies

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:39:27