如何在雄辩模型中动态设置表名

我是拉雷维尔的新手。我试图使用雄辩的模型来访问数据库中的数据

我有一些表具有相似性,例如表名

所以我想用一个模型访问数据库中的多个表,如下所示,但没有运气

有没有办法动态设置表名

如有任何建议,将不胜感激。先谢谢你

型号:

类ProductLog扩展模型
{
public$timestamps=false;
公共函数构造($type=null){
父项::_构造();
$this->可设置($type);
}
}

控制器:

公共功能索引($type,$id){
$productLog=新产品日志($type);
$contents=$productLog::all();
回复(200美元);
}

针对同样问题的解决方案:

我可以按照@Mahdi Younesi的建议更改表名

我可以像下面这样添加where条件

$productLog=newproductlog;
$productLog->可设置('LogEmail');
$logInstance=$productLog->其中('origin\u id',$carrier\u id)
-&燃气轮机;式中('origin_type',2);

以下特性允许在水合过程中传递表名

特征绑定动态
{
受保护的$connection=null;
受保护的$table=null;
公共函数绑定(字符串$连接,字符串$表)
{
$this->设置连接($connection);
$this->可设置($table);
}
公共函数newInstance($attributes=[],$exists=false)
{
//重写以允许后期表绑定。
$model=parent::newInstance($attributes,$exists);
$model->可设置($this->table);
返回$model;
}
}

以下是如何使用它:

类ProductLog扩展模型
{
动态使用活页夹;
}

对实例调用方法,如下所示:

公共功能索引()
{
$productLog=新产品日志;
$productLog->可设置('anotherTableName');
$productLog->get();//从另一个表名中选择*
$productLog->myTestProp='test';
$productLog->save();//现在保存到另一个表名中
}

发表评论