php - 填充对象时重写 Propel 1.6 构造函数会引发警告

标签 php mysql orm overriding propel

我有以下模型,我在其中重写基类的构造函数:

class Tasks extends BaseTasks {    

    public function __construct($currentUser, $taskId, $startTime) {
        parent::__construct();
        //........
        //set all parameters to their respective fields
        //........
    }

当我使用以下命令手动创建任务时:$task= new Task('test_user',1,'10:15'); 一切正常。

问题是当我从数据库中获取所有任务时:

 $tasks = TasksQuery::create()->find();

我收到错误:

Warning: Missing argument 1 for Tasks::__construct(), called in...
Warning: Missing argument 2 for Tasks::__construct(), called in...
Warning: Missing argument 3 for Tasks::__construct(), called in...

堆栈跟踪显示 Propel 调用构造函数,然后 populateObject 返回带有数据的任务对象:

Call Stack:
    //...other function calls
    0.1254   19326792  14. call_user_func(array (0 => 'TasksPeer', 1 => 'populateObject'), array (0 => '98', 1 => '2013-07-16 15:25:00', 2 => 'daily',...other params...) /library/propel1_6/formatter/PropelObjectFormatter.php:87
    0.1254   19326824  15. BaseTasksPeer::populateObject($row = array (0 => '98', 1 => '2013-07-16 15:25:00', ...other params...) /library/propel1_6/formatter/PropelObjectFormatter.php:87
    0.1254   19330456  16. Tasks->__construct($currentUser = ???, $taskId = ???, $startTime = ???) /models/om/BaseTasksPeer.php:485

现在,如果我决定在构造函数中使用值对象而不是基本数据类型,例如:

类任务扩展了 BaseTasks {

    public function __construct(User $currentUser, $taskId, StartTime $startTime) {
        parent::__construct();
        //........
        //set all parameters to their respective fields
        //........
    }

对构造函数的调用将失败并出现 fatal error !有办法解决这个问题吗?

最佳答案

基类调用构造函数,但不带参数。 为了避免警告,请将参数设置为可选

public function __construct($currentUser = null, $taskId = null, $startTime = null) {
    ... 
}

当然,您可以根据应用程序的要求使用适当的值,而不是 null。

关于php - 填充对象时重写 Propel 1.6 构造函数会引发警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17724829/

相关文章:

php - 基于网络更改PHP PDO MySQL连接的IP

android - 如何将我的 getEmptyForeignCollection() 对象与我的父对象链接起来?

java - Hibernate MYSQL native 查询抛出 ClassCastException

php - 我如何在 PHP 中四舍五入一个数字?

php - 需要页面等待 php 完成

mysql - XA恢复: how to convert unreadable xid

mysql - 如何在 zend db 模型中使用 'distinct'

php - mysql——创建新表还是不创建

php - 在 Wowonder 中添加新的性别资料信息

php - 保护 jquery ajax 到 php 连接的安全