在我的表单模型中,我有一个自定义验证函数,用于以这种方式定义的字段
class SignupForm extends Model
{
public function rules()
{
return [
['birth_date', 'checkDateFormat'],
// other rules
];
}
public function checkDateFormat($attribute, $params)
{
// no real check at the moment to be sure that the error is triggered
$this->addError($attribute, Yii::t('user', 'You entered an invalid date format.'));
}
}
Run Code Online (Sandbox Code Playgroud)
当我按下提交按钮时,错误消息不会出现在表单视图中的字段下,而其他规则则显示所需的电子邮件和密码.
我正在处理注册本机表单,所以为了确保它不是一个存在的问题,我已经设置了规则
['username', 'checkDateFormat']
Run Code Online (Sandbox Code Playgroud)
并删除了与用户名字段相关的所有其他规则,但该消息也没有出现.
我已经尝试过什么都不作为参数checkDateFormat,我试图明确地传递该字段的名称addError()
$this->addError('username', '....');
Run Code Online (Sandbox Code Playgroud)
但没有出现.
设置自定义验证功能的正确方法是什么?
使用以下代码,我创建了一个Fabric画布
canvas = new fabric.Canvas('canvas');
canvas.setWidth(660);
canvas.setHeight(590);
fabric.Image.fromURL('assets/img/materials/marble.bmp', function(image) {
image.set({
// I need this because the image size and the canvas size could be different
// in this way the image always covers the canvas
width:660,
height:590
});
canvas.setBackgroundImage(image);
});
canvas.renderAll();
Run Code Online (Sandbox Code Playgroud)
画布已创建,但是除非在画布内部单击,否则不会显示背景图像,因为在画布内部单击时会显示背景。
我正在本地计算机上工作,该应用程序不会在线发布。
您为什么认为我遇到了这个问题?我做错什么了吗?我该如何解决此问题?
我有一个带有文本区域的表单,我需要从输入的字符串中删除最终的多个空格和多个新行.
我写了这个函数来删除多个空格
function fix_multi_spaces($string)
{
$reg_exp = '/\s+/';
return preg_replace($reg_exp," ",$string);
}
Run Code Online (Sandbox Code Playgroud)
此函数适用于空间,但它也会替换新行将其更改为单个空格.
我需要将多个空格更改为1个空格,将多个新行更改为1个新行.
我能怎么做?
我正在使用FabricJS构建一个简单的图像编辑器.我几乎可以做任何我需要的东西,问题在于实现缩放功能.据我所知,FabricJS没有任何构建它,所以我试图自己做.
我在"放大"和"缩小"页面上放了2个按钮,点击它们分别激活jQuery功能
$("#zoomin").click(function() {
$("#canvas").width(
$("#canvas").width() * 1.25
);
$("#canvas").height(
$("#canvas").height() * 1.25
);
});
Run Code Online (Sandbox Code Playgroud)
和
$("#zoomout").click(function() {
$("#canvas").width(
$("#canvas").width() * 0.8
);
$("#canvas").height(
$("#canvas").height() * 0.8
);
});
Run Code Online (Sandbox Code Playgroud)
其中#canvas是包含画布的div的id.此代码工作正常,但实际上放大和缩小,但是这会导致一个问题,当我想要抓住和画布上的对象四处移动,捕捉区域是不是该对象是可见的,当我放大,捕捉区域结果将移动到可见对象的左上角,当我缩小结果时,结果将移动到右下角.
有没有办法使捕捉区域与所示对象的位置一致?
有没有更好的方法来实现缩放功能?
areYear()函数重现WHERE YEAR(...)存在,但是怎么样OR WHERE YEAR(...)?
在示例中,如何写这个?
WHERE YEAR('date_start') = 2015 OR WHERE YEAR('date_start') = 2016
$query->whereYear('date_start', '=', 2015)->????
Run Code Online (Sandbox Code Playgroud) 我遵循Lighthouse网站上的主版本(4.1)教程。
https://lighthouse-php.com/4.1/getting-started/tutorial.html#installation
我重新安装了Laravel 5.8,然后执行了教程中编写的命令(在旁边npm install)
composer require nuwave/lighthouse mll-lab/laravel-graphql-playground
php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider"
php artisan vendor:publish --provider="MLL\GraphQLPlayground\GraphQLPlaygroundServiceProvider"
之后,将/graphql/schema.graphql创建一个文件(在项目根目录下,而不是routes以前版本的文件夹下)。
现在,我用一些数据填充数据库,然后将模式从教程页面复制/粘贴到已发布的模式,启动服务器,然后访问显示正确的URL并将请求发送到的Playground http://127.0.0.1:8000/graphql。
单击Schema选项卡,我总是看到默认模式,而不是发布的默认模式/graphql/schema.graphql,当然,对与用户不同的资源的查询失败,并显示诸如的错误Cannot query field "posts" on type "Query".。我已经尝试过重启服务器并刷新Playground页面。
到config/lighthouse.php文件的架构已注册的路径base_path('graphql/schema.graphql')看起来正确的。
为什么Playground总是显示默认架构,而不显示已发布和编辑的架构?
我正在使用PHP 7.2.14,Lighthouse需要PHP> 7.1