【问题标题】:LIKE statement in blade laravelBlade laravel 中的 LIKE 语句
【发布时间】:2017-12-01 07:46:58
【问题描述】:

我想做一个像这样的 LIKE 语句:

     @foreach($data as $value) 
@if($value->name 'LIKE', '%' . $value->Name . '%')
 <th><a href="{{route('user.show',['id'=>$value->pi_id])}}"><span style="color: red;">{{$value->Name}}</span></a></th>
 @endif

@endforeach

但目前我只是这样做:

    @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

这可能吗?我听说我需要为 LIKE 语句做类似的事情,但它不起作用。

$value-> 名称来自验证表,而 $value-> 名称来自personal_infos 表

【问题讨论】:

  • 这是什么意思?
  • 你的foreach什么都不做,它甚至不输出东西,那么它的目标是什么?
  • 名称来自验证表,而名称来自personal_infos表,我想在刀片中在它们之间做一个LIKE语句。那可能吗?我在互联网上真的找不到任何类似或相关的东西
  • @Black 抱歉忘记放东西了
  • $value-&gt;Name$value-&gt;name 不同吗?

标签: php laravel


【解决方案1】:
Illuminate\Support\Str::is($pattern, $value);
// Str::is("*{$value->Name}*", $value->name)

Illuminate\Support\Str::contains($haystack, $needle);

如果不区分大小写,strtolower 参数。

Str::isLaravel Docs - Helpers - str_is

Str::containsLaravel Docs - Helpers - str_contains

【讨论】:

  • 那么是否包含区分大小写? @lagbox
【解决方案2】:

您应该在第一步通过查询过滤您的数据并在那里使用LIKE

顺便说一句,您可以通过strpos 来完成,LIKE 正在查询中使用,试试这样

@if(strpos( $value->Name, $value->name))

相反

@if($value->name 'LIKE', '%' . $value->Name . '%')

【讨论】:

  • 谢谢帮忙,不过好像不影响,有没有别的解决办法?
  • 对不起,我的控制器可能有问题,修复后会回复您
  • @Dkna:应该可以。您是否通过输入 @if(strpos( 'my name is dkna', 'dkna')) 之类的值进行检查?
  • 我认为它会起作用,只是我的控制器现在出现了一些问题,因为集合现在显示类似这样的内容," 1 => {#341 ▼ +"Name": "clarice" + “名称”:“约翰”+“created_at”:“2017-11-30 06:02:26”}“
  • @Dkna : 尝试在您的查询中输入LIKE
【解决方案3】:

另一个答案是针对所提出的特定问题的解决方案,但问题中使用的方法不是获得所需内容的正确方法。

这个过滤逻辑不应该放在视图中,所以在控制器或服务中这样做,并且只传递列表ov值,然后您可以在模板中无条件输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    相关资源
    最近更新 更多