没有库的自定义验证phalcon

时间:2016-08-04 06:01:02

标签: php phalcon

我是PHP和phalcon的初学者,我想使用自定义验证并创建默认值。

我的控制器是:

use Phalcon\Mvc\Controller;

class OspoController extends Controller
{

    public function indexAction()
    {

    }

    public function createAction()
    {

        $ospo = new Ospos();

        // Store and check for errors
        $success = $ospo->save(
            $this->request->getPost(),
            array('isEmailConfirmed', 'email', 'password', 'salt' ,'phoneNum', 'verifiedPhoneStatus', 'languageId', 'firstName', 'lastName', 'address', 'cityId', 'provId', 'countryId', 'postCode')
        );
        $data = array();
        if ($success) {
            $data[] = array(
                'status' => 'success'
            );
            echo json_encode($data);
        } else {
            foreach ($ospo->getMessages() as $message) {
                $msg = $message->getMessage();
                $data[] = array(
                    'message' => $msg
                );

            }
            echo json_encode($data);
        }

        $this->view->disable();
    }

我希望isEmailConfirmednull - 我想创建isEmailConfirmed = 0;

的值

如何更改getPost()的数组值?

(我可以这样做)我应该改变代码吗? $isEmailConfirmed = $_POST['isEmailConfirmed'];

$ospo->save($isEmailConfirmed, $etc, $etc)

谢谢。

1 个答案:

答案 0 :(得分:2)

首先,您可以将POST数据存储在变量中。然后只需检查null并在保存之前根据需要指定默认值。

$data = $this->request->getPost();
if (!isset($data['isEmailConfirmed']) {
    $data['isEmailConfirmed'] = 0;
} 

另一种方法是保存空值,但在这种情况下,您应该为数据库表中的该列设置DEFAULT。