非常简单。我试图从我的控制器中调用一个函数。事实上,该功能已定义。然而,当函数被调用时,我得到了#34; PHP致命错误:调用未定义的函数validate()......"
这是我的代码。有任何想法吗?感谢。
<?php
class HomeController extends BaseController {
/**
* Controller for the index action of the home page. Displays the landing page.
*/
public function index()
{
return View::make('landing', array('success' => false));
}
/**
* Controller to handle processing the contact form and re-displaying the landing page
*/
public function processForm()
{
$form_array = array();
$errors = array();
foreach (array('email','fname','lname','message','newsletter') as $val)
{
if (isset($_POST[$val]))
$form_array[$val] = $_POST[$val];
else
$form_array[$val] = null;
}
$form_ok = validate();
if ($form_ok)
{
echo "GOOD!";
}
else
{
echo "BAD!";
}
}
/**
* Helper function for validating the form. Returns true if the form was
* submitted without errors.
*/
public function validate()
{
return true;
}
}
答案 0 :(得分:12)
您似乎正在尝试拨打$this->validate()
,而不是validate()
。您已将validate()
定义为类方法,而不是独立函数。
答案 1 :(得分:2)
你应该尝试引用实际的控制器。
这两项都有效。
$form_ok = self::validate();
或
$this->validate();
答案 2 :(得分:0)
应该是$ this-&gt; validate,因为它引用了类中的方法。