【问题标题】:Laravel image submit buttonLaravel 图片提交按钮
【发布时间】:2013-09-09 23:54:46
【问题描述】:

我想知道是否有办法自定义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))); }}

但是我的路由/函数调用有问题。

【问题讨论】:

  • 您不接受答案,有什么理由吗?

标签: php twitter-bootstrap laravel laravel-3


【解决方案1】:

您不能使用HTML 类以这种方式生成链接,作为最佳做法,它已从L4 中删除(HTML),如果您使用原始HTML 标记会更容易这个,虽然在L3中有其他方法,比如(bootstrapper,我没有尝试过),但在(IMO)中它是压倒性的。 检查这个forum link

您也可以使用自定义宏,只需在app\libraries 中创建一个新文件(myMacros.php),它应该为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

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::submit_nested('Search', array('class'=>'someClass', 'name' => 'submit'), '<i class="icon-trash"></i>');

【讨论】:

    【解决方案2】:

    您不能将 HTML 用于 input 的值。如果您尝试过&lt;input type="submit" value='&lt;i class="icon-trash"&gt;&lt;/i&gt;'&gt;,您会发现它不起作用。此外,使用像第二种方法这样的链接是行不通的,因为它实际上并没有提交表单。

    最好的办法是使用按钮。

    <button type="submit"><i class="icon-trash"></i></button>
    

    【讨论】:

      猜你喜欢
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多