我正在使用面向对象的方法开发一个新的应用程序,其中涉及一些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我的控制器应该如何看,并返回验证错误?
我已经看到大多数人在控制器中进行验证,但是我认为应该是验证的模型,因为它将使用数据,我们可以重用该模型而不重复自己.但是,有时候验证规则可能需要在某些特殊情况下有所不同,例如对不同视图的不同验证或对晚餐管理员的不同验证.
你会说哪一个符合最佳做法?
我是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