我想创建一个帮助器(函数)以避免在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);
}
我想在视图中的几个文本块和段落中使用此函数。什么方法最好?
答案 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验证的内容是有用的,这样我们就可以正确地确定用例的最具吸引力的实践。