在Laravel 5中,让我们考虑这两种不同的验证规则:
Validator::make($data, ['email' => 'sometimes|email']);
Run Code Online (Sandbox Code Playgroud)
和
Validator::make($data, ['email' => 'email']);
Run Code Online (Sandbox Code Playgroud)
测试后:
那么这两条规则有什么区别呢?"有时"的目的是什么?
在我的AppController中,我定义了一个必须在我的应用程序的每个视图(包括error400.ctp,error500.ctp)中使用的变量:
// /src/Controller/AppController.php
public function beforeFilter(Event $event)
{
parent::beforeFilter($event);
$foo = 'bar';
$this->set(compact('foo'));
}
Run Code Online (Sandbox Code Playgroud)
它运行良好,除了抛出异常(如NotFoundException)时:我得到以下错误:
Undefined variable: foo in /src/Template/Error/error400.ctp
这是cakephp的正常行为吗?我该如何解决?
我以为我知道关于php的一切,直到我碰到这个:
$foo = 'hello';
isset($foo['a']); // returns false - OK
isset($foo['a']['b']; // returns false - OK
isset($foo['a'][0]); // returns true! WTF?!
Run Code Online (Sandbox Code Playgroud)
有人能解释一下第4行的结果吗?用PHP 5.5.36测试.