我想做一个像这样的LIKE语句:
@foreach($data as $value)
@if(($value->name == $value->Name))
<th><a href="{{route('user.show',['id'=>$value->pi_id])}}"><span style="color: red;">{{$value->Name}}</span></a></th>
@endif
@endforeach
但目前我只是这样做:
{{1}}
这可能吗?我听说我需要为LIKE语句做一些事情,但它不起作用。
$值 - &GT;名称来自验证表,而$ value-&gt;名称来自personal_infos表
答案 0 :(得分:1)
您应该在第一步按查询过滤数据,然后在那里使用LIKE
。
BTW,您可以strpos
执行此操作,LIKE
在查询中使用,请尝试这样
@if(strpos( $value->Name, $value->name))
相反
@if($value->name 'LIKE', '%' . $value->Name . '%')
答案 1 :(得分:1)
Illuminate\Support\Str::is($pattern, $value);
// Str::is("*{$value->Name}*", $value->name)
Illuminate\Support\Str::contains($haystack, $needle);
如果这不区分大小写,strtolower
参数。
Str::is
Laravel Docs - Helpers - str_is
Str::contains
Laravel Docs - Helpers - str_contains
答案 2 :(得分:-1)
另一个答案是解决了已被问到的具体问题,但问题中使用的方法并不是获得所需内容的正确方法。
此过滤逻辑不应放在视图中,因此请在控制器或服务中执行此操作,并仅传递列表ov值,然后可以在模板中输出这些值,而无需任何条件。