laravel检索列中逗号分隔的多个值作为单独的值

时间:2014-09-20 20:02:38

标签: php laravel eloquent blade

您好我的client_website数据库中有一个名为client的数据库中的列,在某些情况下有多个网站链接,这些链接用逗号分隔,如下所示:

www.link1.com, www.link2.com, www.link3.com 

我带上

时首先查询我的Projects控制器
   @foreach ($clients as $client)   
   {{ $client->client_name }}
    {{ $client->email }}
   {{ $client->client_website }}
   @endforeach

字面意思如下:

www.link1.com, www.link2.com, www.link3.com 

当我将它包装在<a>标签中时,它会用{3}链接填充所有三个链接,无论如何我可以删除逗号并将它们分成三个独立的实体吗?

2 个答案:

答案 0 :(得分:2)

你必须把第二个foreach放在那里,这有点脏,但确实有效。所以你会把另一个foreach放在爆炸后的网站上,这将成为所有网站的锚点。

想象一下这些是客户网站:

  

www.link1.com,www.link2.com,www.link3.com

您的代码将是这样的:

@foreach ($clients as $client)   
   {{ $client->client_name }}
   {{ $client->email }}
      @foreach (explode(', ', $client->client_website) as $client_website)
          {{ $client_website }}
      @endforeach
@endforeach

这将输出:

  

客户名称客户电子邮件www.link1.comwww.link2.comwww.link3.com

然后,您可以在其周围添加各种样式。它适用于任何数量的客户和任意数量的网站。请注意,网站列表需要用逗号和尾随空格分隔

答案 1 :(得分:2)

此外,我建议您在这种情况下定义accessor

class Client extends Eloquent {

    public function getClientWebsiteAttribute($value)
    {
        return explode(', ', $value);
    }

}


@foreach ($clients as $client)   
   {{ $client->client_name }}
   {{ $client->email }}
      @foreach ( $client->client_website as $client_website)
          {{ $client_website }}
      @endforeach
@endforeach