Laravel 如何在db表列上执行字符串函数?

Laravel 如何在db表列上执行字符串函数?,laravel,Laravel,我正在尝试对db表中的列的条目进行字符串替换。到目前为止,我已经到达这里: $misa = DB::table('mis')->pluck('name'); for($i=0;;$i++) { $misa[$i] = substr_replace("$misa[$i]","",-3); } 我得到的错误是“未定义的偏移量:443” 另外,我不是一个成熟的程序员。只是想为我的生意开发一些简单的程序。谢谢。由于它是一个集合,请使用集合方法对其进行转换,以避免此类错误。此外,您还可

我正在尝试对db表中的列的条目进行字符串替换。到目前为止,我已经到达这里:

$misa = DB::table('mis')->pluck('name');
for($i=0;;$i++)
{
    $misa[$i] = substr_replace("$misa[$i]","",-3);
}  
我得到的错误是“未定义的偏移量:443”


另外,我不是一个成熟的程序员。只是想为我的生意开发一些简单的程序。谢谢。

由于它是一个集合,请使用集合方法对其进行转换,以避免此类错误。此外,您还可以使用方法转换每个字符串:

$misa = DB::table('mis')->pluck('name');
$misa->transform(function($i) {
    return str_before($i, ':ut');
});

有几种方法可以使这个查询更漂亮、更快!Laravel的美妙之处在于,我们既可以使用Elount进行漂亮的查询,也可以使用Collections以用户友好的方式管理数据。因此,首先让我们清理查询。您可以改为使用DB::Raw select并在查询本身中执行所有字符串替换,如下所示:

$misa = DB::table('mis')->select(DB::raw("REPLACE(name, ':ut' , '') as name"));
现在,我们有了一个只包含name列的集合,您在特定情况下删除了“:ut”,并简单地将其替换为一个空字符串,所有内容都在MySQL查询本身中

惊喜!就这样。不需要进一步的php操作,使这个过程更快(在大型数据集中会很明显-相信我)


干杯

你到底想达到什么目的?你能举例说明你的名字和你想要得到的确切结果吗?这些是产品代码,如socf:ut,tis:ut。我想从所有产品代码的末尾删除:ut。它起作用了。非常感谢你。让我的工作轻松多了。