laravel中无法识别功能

时间:2016-10-04 23:20:35

标签: php laravel

我有这个错误"方法strbtwn不存在" 我在Illuminate \ Support

中为Str.php添加了strbtwn函数
/**
 * Formats release date before returning.
 * 
 * @param  string $s
 * @param  string $start 
 * @param  string $end 
 * @return array
 */
public static function strbtwn($s,$start,$end)
{
    $i = strpos($s,$start);
    $j = strpos($s,$end,$i);
    return $i===false||$j===false? false: substr(substr($s,$i,$j-$i),strlen($start));
}

在我的模型中,我有:$listt = Illuminate\Support\Str::strbtwn($value,"<d>","</d>");

我没看到什么?

1 个答案:

答案 0 :(得分:2)

直接编辑Illuminate\Support上的文件或vendor目录中的任何文件通常都是不好的做法。

您可以创建一个新类并对其进行扩展并在那里添加您的方法。

例如,

// create new file NewStr.php

<?php

class NewStr extends Illuminate\Support\Str
{
    public static function strbtwn($s, $start, $end)
    {
        $i = strpos($s, $start);
        $j = strpos($s, $end, $i);
        return $i === false || $j === false ? false : substr(substr($s, $i, $j - $i), strlen($start));
    }

}

现在来称呼它:

$list = NewStr::strbtwn($value,"<d>","</d>");

应该这样做。