Laravel保存数据到phpmyadmin提示Undefined Variable $Member如何解决
错误原因及修复方案
直接报错原因
你控制器中实例化模型的语法错误,代码行$member = new $Member;中给类名加了$前缀,PHP会将$Member识别为未定义的变量,直接触发Undefined Variable $Member报错。
修复方法
将该行代码的$前缀去掉,修改为:
$member = new Member();
其他需要同步调整的潜在问题
- 控制器类名建议遵循Laravel大驼峰命名规范,你当前的
membercontroller可修改为MemberController,路由中引用控制器的部分要同步调整,避免因为大小写匹配问题出现类找不到错误。 - 确认你的
App\Models\Member模型配置了可批量赋值的字段,否则执行save操作时会抛出字段不允许赋值的错误:
在app/Models/Member.php中添加如下配置:protected $fillable = ['name','age','email']; - 建议在数据保存完成后添加跳转逻辑,避免用户重复提交表单,可在
$member->save();后追加:return redirect()->back()->with('success', '成员信息添加成功');
修改后完整代码示例
控制器代码
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Member; class MemberController extends Controller { function addmemb(Request $req) { $member = new Member(); $member->name = $req->name; $member->age = $req->age; $member->email = $req->email; $member->save(); return redirect()->back()->with('success', '成员信息添加成功'); } }
路由代码
use App\Http\Controllers\MemberController; Route::view('addmembers', 'addmembers'); Route::post('addmembers', [MemberController::class, 'addmemb']);
内容的提问来源于stack exchange,提问作者Ali Raza
相关产品推荐
相关产品推荐

