我正在使用CakePHP3并有两个问题:
我不知道它是否正确,但我认为向实体添加“_setZipCode()”函数并直接进行字符串修改,但是如何访问“onlyNumbers()”全局函数?
谢谢!
答案 0 :(得分:2)
您可以使用'组件'
http://book.cakephp.org/3.0/en/controllers/components.html
src / Controller / Components / GlobalComponent.php 中的
namespace App\Controller\Component;
use Cake\Controller\Component;
class GlobalComponent extends Component
{
public function onlyNumbers($string)
{
//Do something to get numbers or what you want
return $result;
}
}
在 YourController 或 AppController 中加载组件(如果您想要获得golbal访问权限)
class YourController extends Controller
{
public function initialize()
{
parent::initialize();
$this -> loadComponent('Global');
}
public function yourAction()
{
$only_numbers = $this -> Global -> onlyNumbers('ABC123BCA');
}
}
答案 1 :(得分:0)
我可以在哪里放置像“onlyNumbers()”这样的全局函数,只返回字符串中的数字。我将在控制器和实体中使用此功能。
这听起来像是要进行验证,应该在验证器内完成。 See this link
如果真的需要一个全局函数将它放在bootstrap.php中,但我会保留OOP并将代码放到正确的位置和上下文中。
如何在不同用户输入的DB中插入修改值?让我们举一个例子:我有一个输入字段(如邮政编码),js掩码如:xxxxx-xxx,当用户发送它时,cakephp接收带点和短划线的字符串。我想只插入DB数字。
此是验证。您是否阅读过官方文档的这一章?
您可以使用两个,也许三个规则用于您的用例: