Я рассматриваю возможность добавления директивы blade-сервера @link
. Что-то вроде @link($user)
и конвертируйте это в <a href="/user/$user->id">$user->name</a>
.Альтернативы добавлению директивы blade-сервера @link для laravel
Я могу со временем усложнить ситуацию, когда ссылка зависит от типа $user
, например $order
и т. Д. Я могу добавлять методы к объекту, например getHref и getLinkName.
Похоже, что это хорошая и простая идея, но я не вижу, чтобы кто-то еще делал эту схему онлайн.
Я знаю несколько альтернативных способов выразить то же самое, например, {{$ user-> MakeLink()}}, {{$ linkMaker-> ссылка ($ пользователя}}, link_to_ *
Мой вопрос: было ли это сделано раньше? Существует ли пакет, который использует директивы blade-сервера для создания ссылки?
Если это не было сделано раньше, есть ли причина, чтобы избежать этого? Например, в 5.1 документация удалила Blade :: extends. Или, ее плохая идея, чтобы шаблоны клипов генерировали HTML, он был разработан для вывода строки.
Код ниже работает - мой вопрос: должен ли я быть usi чужой пакет или другой шаблон.
\Blade::extend(function($view, $compiler) {
$pattern = "/(?<!\w)(\s*)@link\(\s*(.*?)\)/";
return preg_replace($pattern, '$1<a href="/user-management/view/<?php echo $2->getRouteKey() ?>"><?php echo $2->name ?></a>', $view);
});
Да, вот пакет, который предоставляет вам такие функции, как 'link_to',' link_to_route' и т. Д. Https://github.com/LaravelCollective/html. Он был частью Laravel, но был удален с '5. *'. Вот документация для него http://laravel.com/docs/4.2/helpers#urls. И мне нравится ваша идея обматывать его с помощью директивы blade-сервера. В последнее время я думаю о том же –