如何从特定的第一个字母开始过滤列表(laravel / eloquent)

时间:2018-01-24 15:54:48

标签: php laravel eloquent php-carbon

我有一个字符串列表,只想得到以字母'B'开头的字符串。我尝试了以下代码但没有成功。

{{ $kentekens->where('kenteken', 'LIKE', 'B%') }}

{{ $kentekens->filter(function ($value, $key) {
        return strpos($value, 'B') === 0;
    });
}}

控制器

public function create() {
        $kentekens = Kenteken::latest()
            ->where('created_at', '>=', Carbon::today())
            ->get();

return view('layouts.dashboard', compact('kentekens'));

任何人都知道正确的语法吗?

3 个答案:

答案 0 :(得分:1)

您可以尝试使用函数助手starts_with来检查以B开头的值。像这样:

$kentekens = $kentekens->filter(function ($value, $key) {
   return starts_with($value, 'B');
})

https://laravel.com/docs/master/helpers#method-starts-with

答案 1 :(得分:1)

如果您只想获取以B开头的数据,请执行以下操作:

Kenteken::latest()
    ->where('kenteken', 'like', 'B%')
    ->where('created_at', '>=', Carbon::today())
    ->get();

答案 2 :(得分:0)

您错过了get()

只需替换:

$kentekens->where('kenteken', 'LIKE', 'B%')

由:

$kentekens->where('kenteken', 'LIKE', 'B%')->get()