BadMethodCallException 是一个异常类,表示调用了一个不存在的方法。
BadMethodCallException 是一个异常类,表示调用了一个不存在的方法。
当我想创建一个录音时,为什么会出现这个错误信息?\n\n
\nBadMethodCallException in => C:\\wamp64\\www\\exemple\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Traits\\Macroable.php line 74:\n 方法validate不存在。\n
\n我不明白问题出在哪里?\n控制器 - 学生\n
public function index() { $students = Student::oldest()->paginate(5); return view('admin.students.index', compact('students')) ->with('i', (request()->input('page',1) -1)*5); } /** * 显示创建新资源的表单。 * * @return \Illuminate\Http\Response */ public function create() { return view('admin.students.create', compact('students')); } /** * 将新创建的资源存储到存储器中。 * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'name' => 'required', 'firstname' => 'required' ]); $exists = Student::where('name', $request->get('name'))->where('firstname', $request->get('firstname'))->count(); if (!$exists){ Student::create($request->all()); return redirect()->route('students.index') ->with('success', '新数据创建成功'); } else{ return redirect()->route('students.index') ->with('error', '重复数据'); } }
BadMethodCallException是一种异常类型,表示方法调用错误。它的出现通常是由于调用了一个不存在的方法或不可访问的方法。下面是一个关于BadMethodCallException的例子:
尝试以下代码,将request替换为this:
$this->validate([ 'name' => 'required', 'firstname' => 'required' ]);
出现BadMethodCallException的原因是在代码中调用了一个不存在的方法validate。这可能是因为在当前对象中没有定义validate方法,或者该方法被设置为私有或受保护。
要解决这个问题,可以采取以下几个步骤:
1. 确保在当前对象中定义了validate方法。如果没有定义,需要添加对应的方法。
2. 检查validate方法的访问权限。如果validate方法被设置为私有或受保护,需要将其更改为公共方法,以便在其他地方可以访问到。
3. 确保正确调用validate方法。在上述示例中,validate方法被调用时使用了$this->validate([...])的方式。确保$this指向正确的对象,并且validate方法确实存在于该对象中。
通过以上步骤,可以解决BadMethodCallException异常。如果仍然出现该异常,请检查代码中是否还存在其他类似问题的方法调用错误。