Laravel获取以数字开头的列的所有值

时间:2016-05-10 10:59:16

标签: image laravel

我有一个名为“Image”的模型和一个名为“images”的表。该表有一个“id”列和另一个“name”列。我只需要获取名称以数字开头的行。

我需要提取被称为

之类的东西
16783521_facebook.png

虽然其他人就像......

twiter.png

4 个答案:

答案 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));
});