Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mvc-应用模型&x27;从db生成的s方法_Php_Oop_Model - Fatal编程技术网

php mvc-应用模型&x27;从db生成的s方法

php mvc-应用模型&x27;从db生成的s方法,php,oop,model,Php,Oop,Model,在许多php框架中,我们可以执行以下操作: class Test extends Model { protected $first; protected $second; public function getAllAttributes() { return $this->first.','.$this->second; } } 如何在我自己的解决方案中做到这一点?我当前的型号: class Model { // ..

在许多php框架中,我们可以执行以下操作:

class Test extends Model
{
    protected $first;
    protected $second;

    public function getAllAttributes() {
        return $this->first.','.$this->second;
    }
}
如何在我自己的解决方案中做到这一点?我当前的型号:

class Model
{

    // ..

    public function all() {
        return mysqli_query($con, 'select * from '.$this->table);
    }

}
用法:

$test = new Test();
$result = $test->all();
foreach ($result as $t) {
    echo $t->getAllAttributes();
}

我知道您希望从MySQL查询创建当前类的对象,而不需要在每个模型中再次处理查询生成和对象实例化

您描述的模式(模型负责自己加载)称为活动记录,由RubyonRails流行,然后在CakePHP和Laravel等PHP框架中进行了调整

没有单一的解决方案来实现它,请查看这些框架的代码以了解它们是如何工作的


重要的是模型必须以某种方式描述自己,即从数据库加载哪些属性,它们的数据类型是什么,使用哪个表。这可以基于MySQL中的
descripe$table
结果,通过“注释”和反射,或者显式地使用代码。

我知道您希望从MySQL查询创建当前类的对象,而不需要在每个模型中再次处理查询生成和对象实例化

您描述的模式(模型负责自己加载)称为活动记录,由RubyonRails流行,然后在CakePHP和Laravel等PHP框架中进行了调整

没有单一的解决方案来实现它,请查看这些框架的代码以了解它们是如何工作的


重要的是模型必须以某种方式描述自己,即从数据库加载哪些属性,它们的数据类型是什么,使用哪个表。这可以基于MySQL中的
descripe$table
结果,通过“注释”和反射,或者显式地使用代码。

但我认为他们可能在构造函数中的变量中存储值,或者在其他地方,它不会神奇地出现在这些变量中我认为你想要(或者可以)使用PDO将结果直接选择到预定义的类中(
PDO::FETCH_class
)哇,看起来很棒!谢谢。但我认为他们可能是在构造函数或其他地方将值存储在变量中,而不是神奇地存储在这些变量中。我认为您希望(或可以)使用PDO将结果直接选择到预定义类中(
PDO::FETCH_class
)哇,看起来很棒!谢谢。谢谢,我不知道它叫什么名字,谷歌叫什么:)谢谢,我不知道它叫什么名字,谷歌叫什么:)