PHP Laravel在所有视图中使用helper类

我想创建一个帮助器(函数)以避免在Laravel 5中的所有视图之间重复代码 . 该函数应该使用来自数据库的数据(Eloquent),因此它不能只是一个简单的函数或一般的视图组合器 .

理想情况下它应该是这样的:

{!! Helper::addLinks($text) !!}

Helper类使用Eloquent验证 $value 的位置 . 我想避免更改所有控制器 . 这是什么最好的做法?

Update; 我有以下工作原型 . 此函数搜索文本并使用超链接替换从字典中找到的单词:

function addLinks($text) {
    //retrieve words from database
    $words = Words::all();

    //build dictionary with values that needs replacement
    $patterns = array();
    foreach ($words as $word) {
        $patterns[$word->id] = $word->word_name;
    }

    //build dictionary with values the replacements
    $replacements = array();
    foreach ($words as $word) {
        $replacements[$word->id] = "<a href=\"worddetails.php?id=" . $word->id . "\">" . $patterns[$word->id] . "</a>";
    }

    //return text, replace words from dictionary with hyperlinks
    return str_replace($patterns, $replacements, $text);
}

我想在视图中的几个文本块和段落中使用此函数 . 什么方法最好?

回答(1)

3 years ago

你可以在 app/ 文件夹中创建一个帮助器类吗?防爆 .

namespace App;

use App\Models\User;

class Helper
{
    /**
     * Description...
     *
     * @param mixed $value
     *
     * @return mixed
     */
    public static function lookup($value)
    {
        return User::find($value);
    }
}

你可以通过调用 {!! App\Helper::lookup($value) !!} 来利用它

使用帮助器确切地知道您要使用eloquent验证什么是有用的,这样我们就可以正确地确定用例最有吸引力的实践 .