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

时间:2016-01-10 20:51:49

标签: php function laravel

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

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

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

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

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

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 个答案:

答案 0 :(得分:1)

您可以在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验证的内容是有用的,这样我们就可以正确地确定用例的最具吸引力的实践。