我敢肯定这种事情有一个共同的模式,我正努力寻找搜索词来寻找答案,所以请耐心等待。
我的应用程序中有一些类可以创建存储在关系数据库中的标准模型,例如;
// AtsType::name examples = 'XML', 'RSS', 'SOAP'
class AtsType extends Model
{
public function ats_instances()
{
return $this->hasMany('App\AtsInstance');
}
public function import()
{
}
}
但是,我需要该import()
方法要做的事情,基于实际的模型实例以某种方式调用了类/接口/合同/任何东西。像这样;
AtsTypeRss::import()
AtsTypeXml::import()
AtsTypeSoap::import()
我希望它们是独立的类,以便最终使用一些工匠命令为开发人员生成它们,并进行数据迁移以将新的模型名称创建到数据库中。
我只是不确定该怎么做。
答案 0 :(得分:2)
您可以尝试类似的方法(如here所示),我已经搜索了如何在命名空间中使用变量:
class AtsType extends Model
{
protected $import_method = 'MyMethod';
public function ats_instances()
{
return $this->hasMany('App\AtsInstance');
}
public function import()
{
$string = $this->import_method;
$class = '\\controller\\' . $string;
$newObject = new $class();
}
}