php - 在 Laravel 中将 Model 实例与它自己的 Class 相关联的好方法是什么?
问题描述
我确信这种事情有一个共同的模式,我正在努力寻找搜索词来寻找答案,所以如果这是一个骗局,请多多包涵。
我的应用程序中有一些类创建了存储在关系数据库中的非常标准的模型,例如;
// 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()
我希望它们是独立的类,以便最终使用一些将为开发人员生成它们的工匠命令,以及数据迁移以将新模型名称创建到数据库中。
我只是不确定该怎么做。
解决方案
您可以尝试类似的方法(如此处所示),我已经搜索了如何在命名空间中使用变量:
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();
}
}
推荐阅读
- python - 获取返回空字典的存储 blob 的属性
- mapbox-gl-js - 有没有办法结合两个光栅mapbox layears
- c++ - 存储散列字符串 ID
- r - 如何:在 R 中为 3 个分类变量和一个连续变量创建图?
- html - 使用 jQuery 将另一个 HTML 页面加载到当前 HTML 页面中
- javascript - 将应用程序部署到 Heroku 会引发错误 { path=“/” path=“/favicon.ico” }。但在本地主机上运行
- python - 有没有一种简单的方法可以在 Python/PyMc3 中实现 Normal-inverse-wisart 函数?
- ruby-on-rails - 根据关联记录值更新模型
- mikrotik - 客户端连接到 L2TP 服务器的问题
- python - 税收计算器 - Python