我正在使用GitHub-jenssegers / laravel-mongodb:一个基于MongoDB的雄辩的Laravel模型和查询构建器; 在我的Laravel项目中,我创建了DB模型,该模型动态设置Model表名(在Mongodb案例集合中)。
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class DbData extends Model
{
protected $collection = 'default_collection';
function __construct($collection)
{
$this->collection = $collection;
}
}
当我创建新的DbData对象以进行数据插入时,此方法有效:
$data = new DbData('dynamic_collection_name');
$data->variable = 'Test';
$data->save();
但是这种解决方案还不够,我想使用DbData模型从数据库查询数据。 我想要实现的是增加为DbModel传递变量的可能性,例如:
$data = DbData::setCollection('dynamic_collection_name');
$data->get();
答案 0 :(得分:0)
您也许可以在课堂上做类似的事情。
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class DbData extends Model
{
protected $collection = 'default_collection';
public function __construct($collection)
{
$this->collection = $collection;
}
public static function setCollection($collection)
{
return new self($collection);
}
}
这将允许您调用DbData::setCollection('collection_name')
,并且仅为该特定实例设置集合名称。