Php maria db dynamic columns的Laravel雄辩包装器
据我所知,哪个Php maria db dynamic columns的Laravel雄辩包装器,php,mysql,laravel,mariadb,Php,Mysql,Laravel,Mariadb,据我所知,哪个MariaDb有一个动态列,数据库中该列的数据应该是blob 动态列存储在真实blob列中 在MariaDbsql命令中,我们可以使用CREATE\u COLUMN创建一些列,并使用GET\u COLUMN从blob 例如: 插入数据: 插入鸟瞰图 (人类id、所见时间、观察) 价值观 (27,现在(), 列创建('翼形','尖', "嘴形","通用","主色","灰色";; 从数据库获取查询: 首先选择name_作为“鸟人”, 日期格式(时间显示为“%b%d”)为“日期”, 列
MariaDb
有一个动态列
,数据库中该列的数据应该是blob
动态列存储在真实blob列中
在MariaDb
sql命令中,我们可以使用CREATE\u COLUMN
创建一些列,并使用GET\u COLUMN
从blob
例如:
插入数据:
插入鸟瞰图
(人类id、所见时间、观察)
价值观
(27,现在(),
列创建('翼形','尖',
"嘴形","通用","主色","灰色";;
从数据库获取查询:
首先选择name_作为“鸟人”,
日期格式(时间显示为“%b%d”)为“日期”,
列_GET(观察结果,'机翼形状'为字符)为'Wings',
列_GET(观测值,'翼展'为INT)为'Span(cm)',
列_GET(观察值,'喙形'为CHAR)为'bike'
从鸟类目击
使用(human_id)加入人类;
现在我想知道什么?对于这个结构,是否有任何
雄辩的
包装器,与它们一起使用likeORM
?或者我如何在Laravel
中使用此结构而不亲自测试我认为您可以尝试在您的模型中添加以下内容:
public function newEloquentBuilder($query) {
$query->addSelect(DB::raw("COLUMN_GET(observations, 'wing-shape' AS CHAR)"));
$query->addSelect(DB::raw("COLUMN_GET(observations, 'wingspan' AS CHAR)"));
$query->addSelect(DB::raw("COLUMN_GET(observations, 'bill-shape' AS CHAR)"));
return parent::newEloquentBuilder($query);
}
如果您只想为特定查询临时获取它们,您只需在查询生成器中添加上述选择,例如:
$sighting = BirdSighting::selectRaw("name_first AS 'Birder',
DATE_FORMAT(time_seen, '%b %d') AS 'Date',
COLUMN_GET(observations, 'wing-shape' AS CHAR) AS 'Wings',
COLUMN_GET(observations, 'wingspan' AS INT) AS 'Span (cm)',
COLUMN_GET(observations, 'bill-shape' AS CHAR) AS 'Beak'")->get()
重写
newEloquentBuilder
方法后,您能帮我吗?我如何使用该方法?我如何将查询
传递到该查询中?每当您执行类似鸟瞰::where(condition)
的操作时,应调用方法newEloquentBuilder
,以创建新的查询生成器,在这些情况下,新的构建器将使用这些额外的选择来创建,因此在进行查询时,不需要再做任何事情来获取模型中的这些列