小编ffm*_*ngh的帖子

在哪里验证用户输入?

我正在使用面向对象的方法开发一个新的应用程序,其中涉及一些REST,我没有使用任何框架.

我的问题是在下面的setter中验证用户输入的最佳位置:

public function setSalary($salary)
{
    if (Validator::money($salary))
        $this->salary = $salary;
    else
        return 'Error that is an invalid number';
}
Run Code Online (Sandbox Code Playgroud)

还是在控制器中?

public function updateSalary()
{
    $errors = array();

    if (Validator::money($_POST['salary']))
        $salary = $_POST['salary'];
        else
            $errors ['salary']  = 'Error that is an invalid number';

    if(count($errors))
        return $errors;

    $employee = new Employee($_POST['e_Id']);
    $employee->setSalary($salary);

    $employee->save();
}
Run Code Online (Sandbox Code Playgroud)

如果我要放入setter我的控制器应该如何看,并返回验证错误?

我已经看到大多数人在控制器中进行验证,但是我认为应该是验证的模型,因为它将使用数据,我们可以重用该模型而不重复自己.但是,有时候验证规则可能需要在某些特殊情况下有所不同,例如对不同视图的不同验证或对晚餐管理员的不同验证.

你会说哪一个符合最佳做法?

php oop validation

5
推荐指数
2
解决办法
488
查看次数

phonegap和cordova无法在应用浏览器中打开链接

我是PhoneGap和Cordova的新手,我正在尝试为我的网站创建一个包装器应用程序脚本.

但是我遇到的问题是,当我使用PhoneGap云构建应用程序并点击页面中外部链接上的链接时,它会在Chrome中打开链接而不是本机浏览器,我是否需要安装任何内容?像一个插件或什么?

我已经检查过插件是否在PhoneGap桌面应用程序为我创建的项目中,但是我是否需要将它们复制到该www文件夹中?

/plugins/cordova-plugin-inappbrowser
Run Code Online (Sandbox Code Playgroud)

我的代码很简单,我正在尝试一些不同的方法在本机浏览器中打开它:

<div id="deviceready" class="blink">
    <h1>Test App</h1>
    <a href='#' onclick='navigator.app.loadUrl("http://www.tutorialspoint.com/", {openExternal : false});'/>Test</a><br/>
    <a href='#' onclick="navigator.app.loadUrl('http://www.tutorialspoint.com/', { openExternal:true });">Link</a><br/>
    <a href="#" onclick="window.open('http://www.tutorialspoint.com/', '_system');">system</a><br/>
    <a href='http://www.tutorialspoint.com/'/>Google</a><br/>
    <a href='newpage.html'/>newpage</a><br/>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript phonegap-plugins cordova phonegap-build phonegap-desktop-app

3
推荐指数
1
解决办法
1803
查看次数