Laravel控制器认为我的功能未定义

时间:2014-05-14 20:48:01

标签: php laravel

非常简单。我试图从我的控制器中调用一个函数。事实上,该功能已定义。然而,当函数被调用时,我得到了#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;
    }
}

3 个答案:

答案 0 :(得分:12)

您似乎正在尝试拨打$this->validate(),而不是validate()。您已将validate()定义为类方法,而不是独立函数。

答案 1 :(得分:2)

你应该尝试引用实际的控制器。

这两项都有效。

 $form_ok = self::validate();

$this->validate();

答案 2 :(得分:0)

应该是$ this-&gt; validate,因为它引用了类中的方法。