我有一个名为“Image”的模型和一个名为“images”的表。该表有一个“id”列和另一个“name”列。我只需要获取名称以数字开头的行。
我需要提取被称为
之类的东西16783521_facebook.png
虽然其他人就像......
twiter.png
答案 0 :(得分:1)
我对laravel了解不多,但这个简单的查询会有所帮助 -
SELECT * FROM mytable WHERE mycolumn REGEXP' ^ [0-9] + $'或
SELECT * FROM myTable WHERE col1 REGEXP' [0-9] +';
答案 1 :(得分:1)
Laravel没有内置功能,因此您必须处理原始查询。基本形式:
$results = SomeModel::whereRaw("some_column REGEXP '^[0-9]'")->get();
您可以照常使用选择,其他限制等对此进行修改。
答案 2 :(得分:1)
试试这个:
Image::whereRaw("name REGEXP '^[0-9]'") -> get();
如果您要在多个地方使用某些内容,请考虑将其移至范围内。
在您的图片模型中定义如下内容:
public function scopeNumeric($query)
{
return $query -> whereRaw("name REGEXP '^[0-9]'");
}
然后你可以使用:
Image::numeric() -> get();
答案 3 :(得分:0)
使用其中一种收集方法在查询后过滤图像。就像下面解决了我一样。
$onlyNumeric = $photos->filter(function ($value, $key) {
return is_numeric(substr($value, 0, 1));
});