Я хотел бы узнать, есть ли способ настроить внешний вид кнопки отправки (вместо изображения) в Laravel 3 .
В настоящее время код кнопки отправки выглядит следующим образом:
{{ Form::open('project/delete', 'DELETE') }} {{ Form::hidden('id', $project->id) }} {{ Form::submit('Delete project', array('class'=>'btn')); }} {{ Form::close() }}
И он правильно выполняет свою работу. Но я не вижу, как я могу настроить кнопку отправки и поместить ее в качестве значка начальной загрузки, например; <i class="icon-trash"></i>
Я пробовал использовать:
{{ HTML::decode(HTML::link_to_route('project_delete', '<i class="icon-trash"></i>', array($project->id))); }}
Но тогда у меня проблема с вызовом маршрута / функции.
Вы не можете использовать HTML для значения input
. Если вы попробуете <input type="submit" value='<i class="icon-trash"></i>'>
вы увидите, что это не сработало. Кроме того, использование ссылки, такой как ваш второй подход, не будет работать, потому что оно фактически не отправляет форму.
Лучше всего использовать кнопку.
<button type="submit"><i class="icon-trash"></i></button>
Вы не можете использовать класс HTML
для создания ссылки таким образом, и это ( HTML
) было удалено из L4
качестве лучшей практики, будет легче, если вы используете для этого необработанную разметку HTML
, хотя есть альтернативные способы, например ( bootstrapper , Я не пробовал это) для этого в L3
но в подавляющем большинстве (IMO). Проверьте эту ссылку форума .
В качестве альтернативы вы можете использовать настраиваемый макрос, просто создать новый файл (myMacros.php) в app\libraries
, он должен быть как app\libraries\myMacros.php
и поместить следующий код в этот файл
HTML::macro('link_nested', function($route, $title = null, $attributes = array(), $secure = null, $nested = null, $params = array()) { $url = URL::to_route($route, $params, $secure); $title = $title ?: $url; if (empty($attributes)) { $attributes = null; } return '<a href="'.$url.'"'.HTML::attributes($attributes).'>'.$nested.''.HTML::entities($title).'</a>'; });
Затем start.php
его в ваш start.php
как
require path('app').'/libraries/myMacros.php';
Наконец, используйте его в своем шаблоне, как
HTML::link_nested('user.accountview', 'Delete', array('class'=>'btn'), '', '<i class="icon-trash"></i>', array($project->id));
Для кнопки submit
добавить это в свой myMacros.php
HTML::macro('submit_nested', function($title = null, $attributes = array(), $nested = null) { $title = $title ?: 'Submit'; if (empty($attributes)) { $attributes = null; } return '<button type="submit" ' . HTML::attributes($attributes).'>' . $nested .' '. HTML::entities($title).'</button>'; });
.HTML::macro('submit_nested', function($title = null, $attributes = array(), $nested = null) { $title = $title ?: 'Submit'; if (empty($attributes)) { $attributes = null; } return '<button type="submit" ' . HTML::attributes($attributes).'>' . $nested .' '. HTML::entities($title).'</button>'; });
Наконец, используйте его как
HTML::submit_nested('Search', array('class'=>'someClass', 'name' => 'submit'), '<i class="icon-trash"></i>');