小编Dan*_*Dan的帖子

PHP主义继承

我正在阅读Doctrine文档,但我找不到实现我想要使用的继承类型的方法.

我想建立一个像这样的层次结构:

Node -> Something -> Something Else
Run Code Online (Sandbox Code Playgroud)

Node是主要的父级.

我想存储节点表中所有内容的通用数据,例如创建日期,更新等,而不是在每个表中存储相同的信息.根据其目的,子类将具有不同的属性.

Doctrine的simple和column_aggregation方法似乎无法为子类创建新表,而具体方法创建了一个新表但复制了所有父类的属性.

有没有办法实现这个目标?

任何建议表示赞赏

谢谢.

php inheritance doctrine

6
推荐指数
1
解决办法
901
查看次数

PHP正则表达式删除除数字和句点以外的所有字符

我试图用来preg_replace删除字符串中的所有字符,除了数字和句点字符.

我可以删除除数字之外的所有内容,但是如何才能为'.'做出异常.时期性格.

谁能帮我吗?

php regex

6
推荐指数
2
解决办法
5167
查看次数

PHP - 访问没有区分大小写的对象属性?

我正在开发一个旧应用程序,其中使用的命名约定存在很多不一致之处.

有没有办法访问忽略区分大小写的对象属性?

例如,我有一个名为currentuser的对象,其属性为Name.

有没有办法像这样检索这个值?

$currentuser->name
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏

谢谢.

php properties object

6
推荐指数
1
解决办法
3262
查看次数

在PHP应用程序中使用MySQL视图

我在应用程序中有三个表,我需要执行一个查询,定期连接所有这三个表.有可能所有这三个表都会经常更新.

我正在考虑使用视图来避免在我的代码中的几个地方使用详细的连接语法.这是一个合适的选择吗?我之前没有在大规模应用程序中使用过视图,也不确定它们对性能的影响(正面或负面).

任何建议将不胜感激.

谢谢.

php mysql view

5
推荐指数
1
解决办法
1852
查看次数

PHP在调用静态方法时使用变量

我有三个类都有一个名为'create'的静态函数.我想根据表单的输出动态调用适当的函数,但是语法有点麻烦.无论如何要执行此操作?

$class = $_POST['class'];
$class::create();
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.

谢谢.

php methods static

4
推荐指数
1
解决办法
6253
查看次数

PHP - 从HTML中提取文本

我有一长串HTML包含

<p>
<img>
<span> 
Run Code Online (Sandbox Code Playgroud)

和一堆其他标签.

无论如何只从该字符串中提取标签内的文本?

html php

4
推荐指数
1
解决办法
2万
查看次数

SQL条件/案例联接/多态关联?

我正在尝试实现类似于Ruby on Rails的多态关系的功能。我有以下三个表:

活动用户组织

事件可以是用户或组织的所有者,因此我的“事件”表包括以下列:owner_type和owner_id。

我可以通过内部连接和where子句轻松列出所有属于用户或组织的事件,但是,有一种方法可以根据owner_type列的值使连接表成为条件,允许将所有事件一起列出,不管owner_type?

我希望这是有道理的。

任何建议表示赞赏。

谢谢。

sql polymorphic-associations

4
推荐指数
1
解决办法
2677
查看次数

在foreach循环中没有的OO PHP保护属性?

我有一个验证类,我想用它来检查我的应用程序中的所有值是否在允许的约束内.

我将一个对象传递给验证类中的静态函数,来自另一个类(在本例中为User)

function validate() {
    $errors = Validation::validate($this);
}
Run Code Online (Sandbox Code Playgroud)

在验证类中,我创建一个新对象,然后继续处理传递的参数对象的属性(或者至少这是我想要做的).

function validate($object) {
            $validation = new Validation();
            print_r($object);
            print_r('<br />');
            foreach($object as $key => $val) {
                print_r($val);
                isset($val->maxlength) ? $validation->validateLengthNoMoreThan($val->value, $val->maxlength) : null;
                isset($val->minlength) ? $validation->validateLengthAtLeast($val->value, $val->minlength) : null;
                isset($val->required) && ($val->required == true) ? $validation->validateNotBlank($val->value) : null;
            }
            return $validation->errors;
        }
Run Code Online (Sandbox Code Playgroud)

我在函数中打印出的值纯粹是出于测试目的.我不明白的是为什么对象在foreach循环之外打印得很好,但如果我尝试访问循环中的值,则不会显示任何内容.

这是foreach循环外部显示的内容:

User Object ( 
[username:protected] => Property Object ( [value] => aaa [maxlength] => 12 [minlength] => 3 [required] => 1 ) 
[firstname:protected] =Property Object ( [value] …

php object

3
推荐指数
1
解决办法
6715
查看次数

PHP SimpleTest - 处理异常

我在论坛应用程序中使用了一些简单的类.我正在尝试使用SimpleTest运行一些测试,但我遇到异常问题.

我有一段代码生成自定义异常.有没有办法在我的测试中捕获这个异常并断言它是我所期望的?

这是我班上的方法:

public function save()
  {
      $this->errors = $this->validate();
        try
        {
            if (empty($this->errors))
            {
                Database::commitOrRollback($this->prepareInsert());
            } else {
                throw new EntityException($this->errors);
            } 
        } catch (Exception $e) {
        echo 'Caught exception: ',  $e->getMessage(), "\n";
        }      
  }
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏
谢谢.

php testing exception

3
推荐指数
1
解决办法
1715
查看次数

PHP - HTML形成两种可能的行为?

我正在创建一个注册页面,我想让用户有机会查看他们的信息并返回并编辑它,然后再单击确认按钮将其插入数据库.

有没有办法包括两个指向不同脚本的提交按钮,或者我是否必须复制整个表单但是使用隐藏字段?

任何建议表示赞赏

谢谢.

html php forms

3
推荐指数
1
解决办法
2308
查看次数