我是拉雷维尔的新手。我试图使用雄辩的模型来访问数据库中的数据
我有一些表具有相似性,例如表名
所以我想用一个模型访问数据库中的多个表,如下所示,但没有运气
有没有办法动态设置表名
如有任何建议,将不胜感激。先谢谢你
型号:
类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();//现在保存到另一个表名中
}